2012-12-12 2 views
0

Я пытаюсь захватить точное слово в файле журнала:регулярное выражение для входа захвата файла точное слово

/Emergency|Critical|Error|BEA-000331/ 

Проблема заключается в том, когда, например, у меня есть Error захватить , но это также захватить ErrorUnable. Я хочу захватить только тогда, когда это видно с пространством. Также я ищу BEA-000331 , но все с BEA снято.

ответ

1

Если вы находитесь в perl/ruby, добавьте маркер границы слова \ b, чтобы он соответствовал только границам слов. Кроме того, если BEA-000331 должна быть согласована как единое целое попытаться положить, что в скобках: -

/\b(Emergency|Critical|Error|(BEA-000331))\b/ 
+0

hi im получение этой ошибки как результат совпадения содержимого Сопоставление соответствия совпадения Первое правило регулярных выражений: начало простого; получить матч; итерации к более сложным ... – user1897473

0

Использование \b:

Матчи в позиции между словом характер (что-либо найденной \ ш) и символ без слова (все, что соответствует [^ \ w] или \ W), а также как в начале, так и в конце строки, если первый и/или последний символы в строке являются символами слова.

'\bEmergency\b|\bCritical\b|\bError\b|\bBEA-000331\b'

В зависимости от того, каких инструментов вы так используете можете что-то:

grep -Ew 'Emergency|Critical|Error|BEA-000331' log 

Если опция -w заставляет шаблон, чтобы соответствовать только целым словам.

+0

hi im получение этой ошибки как результаты соответствия содержания Ошибка совпадения содержимого Первое правило регулярных выражений: начало простого; получить матч; итерации к более сложным ... – user1897473

+0

Откуда? Какой инструмент вы используете? –

+0

im Использование приложения hp-приложений – user1897473

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