несколько подходов возможны:
1) Написать регулярное выражение с пробельными правилами после каждого очередного символа. Это, безусловно, взорвет шаблон регулярных выражений, но является наиболее гибким. Для перехвата прерываний используйте режим DOT_ALL. Тем не менее, DOT_ALL создает те же проблемы, что и следующий подход.
2) (Временно) удалить разрывы строк и использовать нормальное соответствие шаблону регулярного выражения. Этот подход имеет проблемы, хотя может случиться так, что вы включаете больше текста, чем необходимо (в конце URL-адреса) или не найдете URL-адрес (если очередь строк находится в начале, испортить строку протокола).
2a) Модификация 2) может заключаться в том, чтобы выполнить несколько попыток совпадения, удаляя только определенные разрывы строк, например. после поиска начальной части URL (например, www, http и т. д.). Это возможно только в том случае, если время распознавания является вторичным.
3) Освободите свою задачу от знаний о домене. Например, если вы знаете, где могут возникать разрывы строк (или если они происходят только в определенных положениях), тогда ищите эти конкретные случаи и сначала их решайте. Затем вернитесь к обычному поиску регулярных выражений.
3a) Вариант 3) может выглядеть специально для протокола и расширения страницы с использованием регулярного выражения с полными правилами пробелов, чтобы найти начало и конец URL-адреса. Это работает, очевидно, только в том случае, если всегда существует протокол/filename_with_extension. Преобразуйте найденные маркеры в обычные без пробелов (но включите пробел перед протоколом и после расширения), а затем удалите все разрывы строк в тексте. Теперь вы можете сопоставить URL с регулярным регулярным выражением.
Есть, конечно, больше вариантов, но общая идея такая же.
Примеры пожалуйста – alestanis
Да, пожалуйста, дайте пример того, что вы говорите о –
. Вы спрашиваете: «Как вы найдете URL-адрес, который может иметь разрывы строк после любого символа?» и я не думаю, что у вас есть надежный способ сделать это. Иногда данные дерьма - данные дерьма, и вы ничего не можете с этим поделать. –