2016-02-15 3 views
0

У меня есть код, который читает файлы по строкам. Он должен соответствовать каждой строке для тегов, которые имеют следующие названия:regex включает только совпадение, если это точно

/корень | classcod | дата | год | агентство | офис | popaddress | место | застежка-молния | САОСК | контакт/

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

Проблема, с которой я сталкиваюсь, заключается в том, что когда одно из имен тегов имеет часть любого из имен в списке, это имя добавляется. Например:

respdate 
date 

код содержит тег для 'respdate', а также 'date'. Как заставить регулярное выражение полностью исключать ресдат, поскольку оно точно не соответствует «дате»?

ответ

1

Один из вариантов - использовать word boundaries metacharacter, \b.

Группа все ваши слова в не-захвата группы и окружить группу с границами слов с обеих сторон:

\b(?:root|date|year)\b 
+0

быстрый самый удивительный ответ, который я когда-либо получал на SO. Ты, чувак, Джош. Благодарю. –

+1

И один из самых повторяющихся. –

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