regex - notepad ++ - 搜索包含字符串且不包含其他字符串的字符串

时间:2013-07-30 20:30:36

标签: regex notepad++

我无法解决这个问题: 我有一些文本文件,其中包含一些条目,如“user = ABname”。 我想搜索包含不以“AB”或“ab”开头的用户ID的所有行,我需要使用Notepad ++的搜索功能使用常规exp。 我尝试过使用

user = ^[ab]

但实际上并没有按预期工作。

我应该找到所有这些:

user = CDname1
user = cdname2
user = acname3
user = xbname4

但不是

user = abname1
user = ABname2

4 个答案:

答案 0 :(得分:6)

尝试使用否定前瞻:

user = (?![aA][bB]).*

您误解了角色类的工作原理。字符类 - [ab]只匹配[]中的所有字符中的一个字符。因此,它会匹配ab。我不能按顺序匹配ab。基本上
[ab]a|b相同。

答案 1 :(得分:5)

您需要使用否定前瞻,例如:

^user = (?![Aa][Bb])

答案 2 :(得分:0)

尝试:^user = ([aA][^bB].*|[^a].*)

它会查找user =,然后:a后跟任何不是b的内容或“不以a开头的任何内容。

答案 3 :(得分:0)

您可以使用:

 user = (?:[^a]|a(?!b))\S+

(不要检查不区分大小写的框,但检查正则表达式框:)