C# 正则表达式替换为占位符
我有一个字符串:C# 正则表达式替换为占位符,c#,regex,C#,Regex,我有一个字符串: AAA foobarfoobarfoobar foo baar bar foo BBB and so on 更换后,其外观应如下所示: AAA foobarfoobarfoobar foo baar bar foo 基本上,BBB及其背后的一切都应剥离。所以我的第一个想法是这样的表达: BBB.* 这实际上起到了作用。但我只想让它起作用,如果BBB支持AAA,那么 BBB bbb AAA aaa BBB ccc 将被替换为 BBB bbb AAA aaa 第一个BBB
AAA foobarfoobarfoobar foo baar bar foo BBB and so on
更换后,其外观应如下所示:
AAA foobarfoobarfoobar foo baar bar foo
基本上,BBB及其背后的一切都应剥离。所以我的第一个想法是这样的表达:
BBB.*
这实际上起到了作用。但我只想让它起作用,如果BBB支持AAA,那么
BBB bbb AAA aaa BBB ccc
将被替换为
BBB bbb AAA aaa
第一个BBB留下来是因为前面没有AAA
我的想法是这样的表达
AAA.*?BBB.*
我认为这会匹配正确的部分,但它也会毁掉整件事。所以我知道有占位符之类的东西,但我不知道如何正确使用它们。如何做到这一点?您可以使用lookback:
(?<=AAA.*?)BBB.*$
您可以使用lookback:
(?<=AAA.*?)BBB.*$
我不知道c#在多大程度上实现了这些功能,但您可以使用其中任何一种
积极地回头寻找匹配项,不要替换它
或者您可以存储(AAA.*)部件并将其插入替换件中我不知道c#实现这些功能的程度,但您可以使用
积极地回头寻找匹配项,不要替换它
或者您可以存储(AAA.*)零件并将其插入替换件中尝试以下操作
(?<=AAA.*?)BBB.*
并替换为捕获组1中的内容
(?<=AAA.*?)BBB.*
并替换为捕获组1中的内容