0

我正在尝试在日志文件中捕获确切的单词:

/Emergency|Critical|Error|BEA-000331/

问题是,例如我必须Error捕获,但这也是捕获ErrorUnable。我只想在空间看到它时捕捉它。我也在寻找,BEA-000331 但所有东西都BEA被捕获了。

4

2 回答 2

1

如果您在 perl/ruby 中,请添加单词边界标记 \b 以仅匹配单词边界。此外,如果 BEA-000331 必须作为一个单元匹配,请尝试将其放在括号中:-

/\b(Emergency|Critical|Error|(BEA-000331))\b/
于 2012-12-12T10:44:02.667 回答
0

使用\b

匹配单词字符(由 \w 匹配的任何内容)和非单词字符(由 [^\w] 或 \W 匹配的任何内容)之间的位置以及字符串的开头和/或结尾(如果第一个)和/或字符串中的最后一个字符是单词字符。

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

根据您使用的工具,您可以执行以下操作:

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

-w选项强制模式仅匹配整个单词。

于 2012-12-12T10:47:19.727 回答