2011-09-16 33 views
1

我需要從字符串中找到最後一位數字,並且卡住了。正則表達式最後一位數字

你能告訴我怎麼做,我從下面的字符串替換最後0:

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

什麼語言? – NPE

+0

一個你想要的東西的例子也是有用的。我猜你的意思是替換第二個[0]可能是[x]? – Kioshiki

回答

3

試試這個正則表達式:

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

它將匹配最後0[]

+1

+1爲最高級的答案,但。 – stema

+0

@stema,謝謝! –

0

你可以做到這一點

\d(\D*)$ 

和任何你想要的更換和$1

這如果你的號碼實際上是字符串/行中的最後一個,那麼它將起作用。 (請參閱評論中的Kirills示例)。

it here on Regexr

$1是這裏的第一個捕獲組的內容。這意味着()的內容,即您想要替換的數字後面的所有內容。

\d是一個數字

\D不是一個數字

$是字符串

+0

嘗試輸入:'something [0] .moresomething [0] .evenmore0something' –

+0

@Kirill不會工作,我知道。 – stema

4

這將讓你的最後一位......也被稱爲「negative lookahead」的結束。

\d(?!.*\d) 

如果你在.NET中這樣做,替換最後一個字符你會做這樣的事情:

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

「結果」現在將包含字符串「某物[0]。 moresomething [2] .evenmoresomething」

+2

您可以放下方括號。 –

+0

好點!已更新以反映此:) – codefrenzy

相關問題