我正在尝试制作与特定模式匹配的正则表达式,但我想忽略以#
开头的行。我该怎么做?
假设我有模式(?i)(^|\W)[a-z]($|\W)
它匹配所有行,只有一个字母出现。它匹配这些行,例如:
asdf e asdf
j
kke o
现在我想覆盖它,使其与以#
编辑:
我不够具体。我的真实模式更复杂。看起来有点像这样:(?i)(^ | \ W)([a-hj-z] | lala | bwaaa | foo($ | \ W)
它应该像我想阻止攻击性语言一样使用,如果一行不以哈希开头,在这种情况下它应该覆盖。
答案 0 :(得分:4)
这就是你要找的东西
^(?!#).+$
^
标记了行的开头,$
标记了行尾(在多行模式下)
.+
会匹配1到多个字符
(?!#)
是一个前瞻,只有当该行不以#
开头时才会进一步匹配
答案 1 :(得分:1)
此正则表达式将匹配任何单词\w
,而不是#
:
^(?<!#)\w+$
它在字符串的开头执行负向lookbehind,然后用1个或多个单词字符跟随它。