2017-03-29 11 views
-1

文字列の文字列は次のようになります。 - "$ .ConfigSettings.DatabaseSettings.DatabaseConnections.SqlConnectionString.0.Id" この結果は次のようになります。 - 私は[数字]に変更する必要がある期間が先行し、成功した一桁があり、基本的にどこ 「$ .ConfigSettings.DatabaseSettings.DatabaseConnections.SqlConnectionString [0] .ID」文字列内の文字を挿入して置き換える正規表現C#

は期間すなわち[数字が続きます]。私は人々が正規表現の文字列を置き換えるだけの例を見てきました。
はどのように私は

+0

'Regex.Replace(入力、@" \。(\ d)(?= \。) "、" [$ 1] ") – spender

+0

これは何かを説明できますか?ありがとう、それは多く働いた。 –

+0

私の答えを見てください。 – spender

答えて

1
Regex.Replace(input, @"\.(\d)(?=\.)", "[$1]") 

\.   - capture a "." 
    (\d)  - then a single digit in a capturing group ($1 in the replacement) 
     (?=  - start a positive lookahead 
     \. - that matches a "." 
      ) - end the lookahead 

だから、C#で、この使用Regex.Replaceを行います、それは意味:はそれはドットが続いている場合にのみ、(キャプチャグループ内の数字が続くドットと一致する)

".0"と一致し、キャプチャされた"0"です。一致全体を"[$1]"に置き換えます。$1は最初に取得したグループを表します。

このソリューションで使用するさまざまなグループ化構成については、"Grouping Constructs in Regular Expressions"https://msdn.microsoft.com/en-us/library/bs2twtah(v=vs.110).aspxを参照してください。

+0

ありがとう、私は先読みの部分について知っていなかった –

関連する問題