2012-01-13 38 views
0

虽然即时通讯使用c#和.net库,我感兴趣的是仅用于正则表达式的文本替换解决方案,并且最终障碍有点困惑。 (IM使用http://gskinner.com/RegExr正则表达式替换,但保留MetaInfo?

Ive得到的字符串

"Foo {0} Bar {1}" 

我可以用{[0-9]}匹配,但是当涉及到更换,ID喜欢守号,即会产生:

"Foo $0$ Bar $1$" 

如果我决定要用美元符号替换大括号(例如)。

回答

2

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

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

一些正则表达式的口味遵循$1而不是\1 - 在这种情况下,你应该逃避明确$符号作为替换字符串$$。而且,\字符本身也需要像往常一样在字符串中转义。

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

0

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