2017-10-20 34 views
2

我想在符号之间插入字符串,但符号是连续的。像'xx ;; string ;;; string ;; string ;;;;'如何在windows c中以多个连续模式插入字符串#

我可以使用Regex r = new Regex(@";;", RegexOptions.Singleline);text = r.Replace(text, ";na;");,但输出将是xx;na;string;na;;string;na;string;na;;na;

我要的是xx;na;string;na;na;string;na;string;na;na;na; 我想之间的所有空的空间“;;”在其中有na。

有没有什么C#函数可以实现这个?

+2

这个'.Replace(“;;”,“; na;”)'不会产生预期的结果。 –

+0

运行你的正则表达式两次 – Piro

回答

2

您可以使用正则表达式;(?=;)与前瞻匹配;,然后用另外;不消耗第二;

var str = "xx;;string;;;string;;string;;;;"; 
var res = Regex.Replace(str, ";(?=;)", ";na"); 
Console.WriteLine(res); // => xx;na;string;na;na;string;na;string;na;na;na; 

C# demoregex demo

(?=;)positive lookahead仅检查是否存在紧接;到当前位置的左侧,但不将其添加到匹配值(因此它不会被删除)和不动的正则表达式指数(以便在下一次迭代期间再次匹配相同的;)。

+1

欣赏答案 – sowrdking

相关问题