2011-09-16 22 views
1

文字列の最後の桁を見つける必要があります。正規表現最後の数字

something[0].moresomething[0].evenmoresomething 
+1

どのような言語ですか? – NPE

+0

あなたがやりたいことの例も役に立つでしょう。私は第二の[0]を何か[x]で置き換えることを意味すると思いますか? – Kioshiki

答えて

3

を.evenmoresomethingをmoresomethingすると、この正規表現を試してみてください:

(?<=\[)0(?=\])(?!.*?\[0\]) 

それは最後にマッチしますin []

+1

+1、まだ最先端の答えです。 – stema

+0

@stema、ありがとう! –

0

あなたはこの

\d(\D*)$ 

を行うと、あなたが好きなことをして$1

この置き換えることができます。

私は、以下の文字列から最後の0を置き換えない方法を教えてもらえますあなたの番号が本当に文字列/行の最後のものであれば動作します。 (コメントのKirillsの例を参照)。

it here on Regexr

$1は、ここで最初のキャプチャグループの内容である参照してください。つまり()の内容、つまり置き換えたい桁に続くものすべてを意味します。

\d

\Dある桁

$これは、あなたにも「negative lookahead」として知られている最後の桁を...になるだろう文字列

+0

次のような入力を試してください: 'something [0] .moresomething [0] .evenmore0something' –

+0

@Kirillは動作しません。 – stema

4

の終わりではありません。

\d(?!.*\d) 

あなたはあなたのような何かをしたい最後の文字置き換えるために、.NETでこれをやっている場合:

string source = "something[0].moresomething[0].evenmoresomething"; 
string regEx = @"\d(?!.*\d)"; 
string result = Regex.Replace(source, regEx, "2"); 

「結果」今「の文字列が含まれていると何かを[0]。 [2]」

+2

大括弧を削除できます。 –

+0

良い点!これを反映するように更新しました: – codefrenzy

関連する問題