Ответ заключается в том, что вы не можете сделать это со 100% точностью.
URL-адрес, такой как "http://somepage1.net,"
, технически допустим, и нет способа точно определить, является ли ","
частьюURL или просто пунктуация.
URL, такой как "http://somepage1.net or something"
, технически недопустим, но типичные конечные пользователи не знают этого.(Они используются для браузеров, которые делают всевозможные шутки по отношению к тому, что они печатают в своем браузере.)
Вероятно, лучшее, что вы можете сделать, это использовать регулярное выражение для извлечения допустимых URL, а затем обрезать текстовые знаки препинанияправый конец URL ... при предположении о том, что они не должны быть частью URL.
Вы также можете рассматривать соответствующие кавычки или левые / правые скобки как обозначающие URLграницы;например,
The secret URL is "http://example.com/?" ... don't leave off the "?"