Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正则表达式替换为占位符_C#_Regex - Fatal编程技术网

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中的内容