регулярное выражение для соответствия конкретному тексту, не связанному - PullRequest
3 голосов
/ 10 февраля 2010

Я хотел бы написать регулярное выражение в javascript для соответствия конкретному тексту, только если оно не является частью html-ссылки, т.е.

match <a href="/link/page1">match text</a>

не будет соответствовать, но

match text

или

<p>match text</p>

будет сопоставлено.

(«Текст соответствия» будет меняться при каждом запуске поиска - я буду использовать что-то вроде

var tmpStr = new RegExp("\bmatch text\b","g");

где значение «совпадает с текстом» читается из базы данных.)

Пока что мои лучшие попытки регулярного выражения:

\bmatch text\b(?!</a>)

Это касается закрытия, ноне начальный.Это, вероятно, будет хорошо работать для моих целей, но это не кажется идеальным.Буду признателен за помощь в уточнении регулярного выражения.

Ответы [ 2 ]

4 голосов
/ 10 февраля 2010

Вы можете использовать отрицательный взгляд, чтобы получить открытие <a href=...:

var tmpStr = new RegExp('(?<!<a.*?>)match text(?!</a>)');

Надеюсь, что это работает для вас.

3 голосов
/ 10 февраля 2010

Спасибо за очень быстрые и полезные ответы. Просто чтобы уточнить, регулярное выражение, которое я в итоге использовал, было

(?!<a.*?>)\bmatch text\b(?!</a>)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...