正则表达式.替换为匹配的字符串

本文关键字:字符串 替换 正则表达式 | 更新日期: 2023-09-27 18:18:24

我想在c#正则表达式字符串的每个换行符之前紧凑地插入一个<br />标记。这能做到吗?目前,我只能用以下命令替换换行符:

myString = Regex.Replace(myString, @"'r'n?|'n", "<br />");

我可以修改它以在替换中包含匹配的文本(即'r'n, 'r'n)吗?

显然,它可以用一个单独的Match变量来完成,但我很好奇它是否可以在一行中完成。

正则表达式.替换为匹配的字符串

使用括号捕获换行符,并使用$1使用您在replace中捕获的内容:

myString = Regex.Replace(myString, @"('r'n?|'n)", "<br />$1");

MSDN有一个单独的页面专门用于。net的正则表达式替换魔法。

虽然其他人是正确的,但最通用的方法是捕获某些内容并使用$n(其中n是捕获的组号)回写捕获的内容,在您的情况下,您可以简单地使用$&回写整个匹配:

myString = Regex.Replace(myString, @"'r'n?|'n", "<br />$&");

如果你经常这样做,那么避免捕获可能会更有效率。

你可以在你的"replace"字符串中替换:

Regex.Replace(myString, @"('r'n?|'n)", "$1<br />");