虽然即时通讯使用c#和.net库,我感兴趣的是仅用于正则表达式的文本替换解决方案,并且最终障碍有点困惑。 (IM使用http://gskinner.com/RegExr)正则表达式替换,但保留MetaInfo?
Ive得到的字符串
"Foo {0} Bar {1}"
我可以用{[0-9]}
匹配,但是当涉及到更换,ID喜欢守号,即会产生:
"Foo $0$ Bar $1$"
如果我决定要用美元符号替换大括号(例如)。
虽然即时通讯使用c#和.net库,我感兴趣的是仅用于正则表达式的文本替换解决方案,并且最终障碍有点困惑。 (IM使用http://gskinner.com/RegExr)正则表达式替换,但保留MetaInfo?
Ive得到的字符串
"Foo {0} Bar {1}"
我可以用{[0-9]}
匹配,但是当涉及到更换,ID喜欢守号,即会产生:
"Foo $0$ Bar $1$"
如果我决定要用美元符号替换大括号(例如)。
替换\{(\d+)\}
与$\1$
在正则表达式的括号“捕获”封闭部分,它可以在使用\1
语法替换字符串来访问。所以,如果你有多个捕获组,第一个是\1
和第二个是\2
等
一些正则表达式的口味遵循$1
而不是\1
- 在这种情况下,你应该逃避明确$
符号作为替换字符串$$
。而且,\
字符本身也需要像往常一样在字符串中转义。
花括号是特殊字符,因此需要转义。
使用捕获组:将\{(\d+)\}
替换为$\1$
。