Regex 正则表达式-记事本++;-搜索包含字符串而不包含其他字符串的字符串

Regex 正则表达式-记事本++;-搜索包含字符串而不包含其他字符串的字符串,regex,notepad++,Regex,Notepad++,我无法解决这个问题: 我的文本文件中有一些条目,如“user=ABname”。 我想搜索所有包含用户id的行,而不是以“AB”或“AB”开头,我需要使用Notepad++的搜索功能使用常规exp来完成。 我试过使用 user = ^[ab] 但实际上并没有如预期的那样起作用 我应该找到所有这些: user = CDname1 user = cdname2 user = acname3 user = xbname4 但不是 user = abname1 user = ABname2 尝试使用

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

user = ^[ab]
但实际上并没有如预期的那样起作用

我应该找到所有这些:

user = CDname1
user = cdname2
user = acname3
user = xbname4
但不是

user = abname1
user = ABname2

尝试使用消极前瞻:

user = (?![aA][bB]).*
您误解了角色类的工作方式。字符类-
[ab]
只匹配
[
]
中存在的所有字符中的一个字符。因此,它将匹配
a
b
。我不会按顺序匹配
ab
。基本上

[ab]
a | b

相同,您需要使用负前瞻,例如:

^user = (?![Aa][Bb])
请尝试:
^user=([aA][^bB].[^a].*)

它查找
user=
,然后:
a
后跟任何非
b
的内容,或者“任何不以
a
开头的内容”您可以使用以下内容:

 user = (?:[^a]|a(?!b))\S+
(不要选中不区分大小写的框,而是选中正则表达式框:)