我试图创建一个匹配特定模式的正则表达式,但我想忽略以#
开头的行。我该怎么做?
假设我有(?i)(^|\W)[a-z]($|\W)
模式
它匹配所有只出现一个字母的行。例如,它匹配以下行:
asdf e asdf
j
kke o
现在我想覆盖它,使它不匹配以#
开头的行
编辑:
我说得不够具体。我的真实的模式更复杂。它看起来有点像这样:(?i)(^|\W)([a-hj-z]|拉拉|布瓦阿|foo($|\W)
它的使用方式有点像我想阻止攻击性语言,如果一行不是以散列开头,在这种情况下,它应该覆盖。
2条答案
按热度按时间xdnvmnnf1#
这就是你要找的
^
标记行的开始,$
标记行的结束(在多行模式下).+
将匹配1到多个字符(?!#)
是一个先行,只有当行不是以#
开始时,它才会进一步匹配uqzxnwby2#
此正则表达式将匹配任何前面没有
#
的单词字符\w
:它在字符串的开头执行负向后查找,然后在其后跟随1个或多个单词字符。