2013-07-04 3 views
0

Следующее регулярное выражение отлично работает, когда мне нужно определить URL.Исключить конкретный символ в регулярном выражении

`((?:https?|ftp)://\S+?)(?=[]).,;:!?]?(?:\s|\Z)|\Z)` 

Но у меня есть регулярное выражение, которое детектирует [URL = ...] ... [/ URL] код, и в этом случае тексты становится: ... и как HTTP: // ... все еще присутствует, URL-адрес обнаруживается во второй раз с помощью указанного регулярного выражения.

Я хотел бы, чтобы предотвратить URL-адреса, начинающиеся со знака равенства могут быть обнаружены с помощью предыдущего регулярного выражения: HTTP: // ... был бы обнаружен, но не = HTTP: //

Я попытался

`(^\=)((?:https?|ftp)://\S+?)(?=[]).,;:!?]?(?:\s|\Z)|\Z)` 

Но это не сработает.

Спасибо заранее! :)

ответ

0

думает следующее будет работать с использованием отрицательного просмотра назад (?<!)

(?<!=)((?:https?|ftp)://\S+?)(?=[]).,;:!?]?(?:\s|\Z)|\Z) 
+0

Пробовал и это выглядит, как это работает, спасибо! :) – user2543708

Смежные вопросы