4

我正在尝试制作一个匹配特定模式的正则表达式,但我想忽略以#. 我该怎么做?

假设我有模式(?i)(^|\W)[a-z]($|\W)

它匹配所有出现一个字母的行。例如,它匹配这些行:

asdf e asdf
j
kke o

现在我想覆盖它,使其不匹配以 a 开头的行#

编辑:

我不够具体。我的真实模式更复杂。它看起来有点像这样: (?i)(^|\W)([a-hj-z]|lala|bwaaa|foo($|\W)

它应该像我想阻止攻击性语言一样使用,如果一行不以哈希开头,在这种情况下它应该覆盖。

4

2 回答 2

8

这就是你要找的

^(?!#).+$

^标记行的开头并$标记行的结尾(在多行模式下)

.+将匹配 1 到多个字符

(?!#)是一个前瞻,仅当该行不以开头时才会进一步匹配#

于 2013-06-04T14:53:11.983 回答
1

\w此正则表达式将匹配任何前面没有 a 的单词字符#

^(?<!#)\w+$

它在字符串的开头执行一个否定的lookbehind,然后在它后面加上 1 个或多个单词字符。

于 2013-06-04T14:50:56.310 回答