为什么负面看起来失败了

时间:2014-04-02 15:47:29

标签: .net regex regex-lookarounds

这是我的搜索文字:

#<localhost>
127.0.0.1 localhost
127.0.0.1 localhost.localdomain
255.255.255.255 broadcasthost
::1  localhost
127.0.0.1 local
#</localhost>

我的正则表达式

(?<=^#)(?<stuff>.+)

正常工作,只选择#行。

当我将其更改为(?<!^#)(?<stuff>.+)

尝试仅获取非注释行,它返回所有行。

我觉得我错过了一些明显的,有任何建议吗?

使用多行和全局选项

2 个答案:

答案 0 :(得分:0)

你需要前瞻,而不是向后看。所以试试:

^(?!#)(?<stuff>.+)$

简单:

^([^#].*)$

这将跳过评论和空行。

希望这有帮助。

答案 1 :(得分:0)

在找到不是#。

的字符后,您的正则表达式可能不会限制自己

请尝试以下操作,找到您在

行之间寻找的格式
[0-9\.:]+[A-Z\.a-z\s]+