虽然我正在使用c#和.net lib,我对一些正则表达式的文本替换解决方案感兴趣,并且对最后的障碍感到有些困惑。 (我正在使用http://gskinner.com/RegExr)
我有字符串
"Foo {0} Bar {1}"
我可以使用{[0-9]}
来匹配,但是当涉及到替换时,id就像保留数字一样,即会产生:
"Foo $0$ Bar $1$"
如果我决定用大号符号代替花括号(例如)。
答案 0 :(得分:2)
将\{(\d+)\}
替换为$\1$
正则表达式中的括号“捕获”封闭部分,可以使用\1
语法在替换字符串中访问它。因此,如果您有多个捕获组,则第一个捕获组为\1
,第二个捕获组为\2
等。
有些正则表达式跟随$1
而不是\1
- 在这种情况下,您应该在替换字符串中将显式$
符号转义为$$
。此外,\
字符本身需要像往常一样在字符串中进行转义。
花括号是特殊字符,因此需要进行转义。
答案 1 :(得分:0)
使用捕获组:将\{(\d+)\}
替换为$\1$
。