2013-07-30 216 views
4

我无法解决此问题: 我有一些条目(如“user = ABname”)的文本文件。 我想搜索所有包含不以“AB”或“ab”开头的用户标识的行,并且需要使用Notepad ++的搜索功能以常规exp进行搜索。 我尝试过使用正则表达式 - 记事本++ - 搜索包含字符串且不包含其他字符串的字符串

user = ^[ab] 

但实际上并未按预期工作。

我应该找到所有这些:

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

但不

user = abname1 
user = ABname2 

回答

6

尝试使用负前瞻:

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

你是误会了如何一个字符类的作品。角色分类 - [ab]只匹配[]中的所有内容中的一个字符。因此,它将匹配ab。我不会按顺序匹配ab。基本上
[ab]a|b相同。

5

您需要使用负先行,如:

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

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

它寻找user =然后:a其次是任何非b或“任何不开始与a

0

您可以使用此:

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

(不检查大小写不敏感的框,但检查正则表达框:)

相关问题