在.NET中,我需要一个Regex来查找一个字符串,而不是另一个。考虑一下要搜索的文本,粗体部分是我试图找到的:
aabbaabbccbbaabbdd
我想找到的是:以aa开头,在下一次出现aa或dd之前结束,并包含cc的文本。我以为解决方案是aa(?!aa(。*?抄送*?(?=(aa|dd((,但这会选择aabbaabbccbb,但我不想包含初始aabb。显然,对于我的实际任务,我并没有真正搜索这样的成对字母,所以我不想使用搜索单个字符。什么能找到我需要的?提前谢谢。
更新:
粗体是我想要找到的,给定一个不同的搜索字符串:
aaxyzcabcd aaanythingaablaccblabladd
我需要的搜索规则是:查找以aa开头、在下一个aa或dd(以先到的为准(之前结束并包含cc.的文本
我问了不同的问题,得到了一个有效的答案,可以在https://stackoverflow.com/a/63169037/1250500.该解决方案涉及两个零宽度的否定前瞻断言,每个断言都在一个非捕获组中。非常令人印象深刻,我很高兴它不需要平衡小组。