2012-01-13 5 views
0

私はC#と.net libを使用していますが、私はテキスト置換のための正規表現のみのソリューションに興味があり、最終的なハードルによってちょっと混乱しています。RegexはMetaInfoを保持している間に置き換えますか?

アイブ氏は、私が一致する{[0-9]}を使用することができ、文字列

"Foo {0} Bar {1}" 
を得た(イム http://gskinner.com/RegExrを使用して)、それが交換に来るとき、ID番号を維持したい、すなわち生成します:

"Foo $0$ Bar $1$" 

私が決めたなら、中括弧をドル記号(例えば)で置き換えたいと思った。

答えて

2

は、正規表現に$\1$

\{(\d+)\}括弧を交換囲まれた部分を「捕捉」し、それは、\1構文を使用して置換文字列にアクセスすることができます。あなたは、複数のキャプチャグループを持っているのであれば、最初のものは\1で、もう一つは\2

いくつかの正規表現のフレーバーが$1代わりの\1に従ってある - その場合にはあなたが置換文字列内の$$として明示的$記号をエスケープする必要があります。また、文字自体で\文字をエスケープする必要があります。

中括弧は特殊文字なので、エスケープする必要があります。

0

キャプチャグループを使用します。\{(\d+)\}$\1$に置き換えます。

関連する問題