0

我正在尝试匹配以下模式:

LOCAL1*.CRIT /var/log/messages

使用正则表达式:

(^LOCAL[0-9]|^[\\*])[.]([\\*]{1}|[a-zA-Z]*)\\s*(/[/a-zA-Z])

它似乎匹配除了最后的路径之外的所有内容。关于为什么会发生这种情况的任何线索?

4

2 回答 2

2

看起来您在最后一组末尾缺少一个星号:

(^LOCAL[0-9]|^[\\*])[.]([\\*]{1}|[a-zA-Z]*)\\s*(/[/a-zA-Z]*)
                                                          ^ THIS

否则,您只会匹配第一个斜杠和一个字符。

此外,您的正则表达式和LOCAL1*. 在目前的形式中,正则表达式不会匹配最后一个字符(the *)。这很容易修复,但正确的修复取决于您的要求(*总是存在吗?它是可选的吗?等)

于 2013-01-04T12:56:48.913 回答
2

不应该是这样吗?

(^LOCAL[0-9]\\*|^[\\*])[.]([\\*]{1}|[a-zA-Z]*)\\s*(/[/a-zA-Z]*)

于 2013-01-04T13:14:52.183 回答