Я пытаюсь создать регулярное выражение, соответствующее строкам URL в обычном тексте. У меня есть это:
http[s]?://[^\s]+
Кажется, это хорошо работает, за исключением того, что, если URL находится в конце предложения, он также захватит и период. Например, для этой строки:
Я набираю текст с URL http://something.com/something-?args=someargs. Это еще одно предложение.
соответствует:
http://something.com/some-thing?args=someargs.
Я бы хотел, чтобы оно совпадало:
http://something.com/some-thing?args=someargs
Очевидно, что я не могу исключить периоды, потому что они ранее были в URL, но я не могу понять, как сказать, чтобы исключить последний период, если он есть. Я мог бы потенциально использовать отрицательный прогноз для конца строки или пробела, но если бы он был в середине строки (без точки после нее), это бы пропустило последний символ URL.
У большинства из тех, что я видел в Интернете, есть та же проблема, что они соответствуют конечной точке, так что, возможно, это невозможно? Я знаю основные регулярные выражения, но, конечно, не гений в этом, поэтому, если у кого-то есть решение, я был бы очень благодарен:).
Кроме того, в этом случае я могу выполнить некоторую постобработку, чтобы удалить точку, если мне нужно, просто кажется, что должно быть решение Regex ...