保留MetaInfo时正则表达式替换?

时间:2012-01-13 09:43:23

标签: regex

虽然我正在使用c#和.net lib,我对一些正则表达式的文本替换解决方案感兴趣,并且对最后的障碍感到有些困惑。 (我正在使用http://gskinner.com/RegExr

我有字符串

"Foo {0} Bar {1}"

我可以使用{[0-9]}来匹配,但是当涉及到替换时,id就像保留数字一样,即会产生:

"Foo $0$ Bar $1$"

如果我决定用大号符号代替花括号(例如)。

2 个答案:

答案 0 :(得分:2)

\{(\d+)\}替换为$\1$

正则表达式中的括号“捕获”封闭部分,可以使用\1语法在替换字符串中访问它。因此,如果您有多个捕获组,则第一个捕获组为\1,第二个捕获组为\2等。

有些正则表达式跟随$1而不是\1 - 在这种情况下,您应该在替换字符串中将显式$符号转义为$$。此外,\字符本身需要像往常一样在字符串中进行转义。

花括号是特殊字符,因此需要进行转义。

答案 1 :(得分:0)

使用捕获组:将\{(\d+)\}替换为$\1$

相关问题