正则表达式匹配不包含子字符串的字符串

xtm*_*tmq 0 c# regex substring

我尝试找到不包含相同子字符串的字符串.这是我的代码:

var regex = new Regex(@"aaa(?!.*aaa).*aaa");
var str1 = @"aaa aaa aaa";
var match = regex.Match(str1); // no
var str1 = @"aaa bbb aaa";
var match = regex.Match(str1); // yes
Run Code Online (Sandbox Code Playgroud)

但是这段代码不起作用......我做错了什么?

谢谢!

Qta*_*tax 7

你想要一个像这样的表达式:

aaa(?:(?!aaa).)*aaa
Run Code Online (Sandbox Code Playgroud)

(?:(?!aaa).)*匹配不包含的字符串aaa(全部或部分).

你也可以这样写:

aaa(?:[^a]+|a(?!aa))*aaa
Run Code Online (Sandbox Code Playgroud)