正则表达式.替换为匹配的字符串
本文关键字:字符串 替换 正则表达式 | 更新日期: 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 />");