2012-11-22 52 views
1

我想在java中使用正則表達式來僅剝離數字,如果它們位於字符串的末尾和下劃線之後的所有內容。正則表達式在字符串末尾_處去除結尾數字或字符

1) massi_xxx -> massi 
2) massi_12121 -> massi 
3) massi123 -> massi 
4) 123massi1 -> 123massi 

我發現
(?= [0-9 _])。* 爲1,2,3的用例工作正常,但不是4) 如何改進它的主意?

感謝 M.

+1

您正在使用哪種語言或工具? –

回答

1

以下的正則表達式應適用於大多數的口味:

(?:_.*|\d*)$ 

我們既匹配之後任何事情,直到字符串的結尾_。或者我們匹配一堆數字直到字符串結束。 (字符串的結尾由錨$表示)

Working demo.

有些味道可能遏制於?:這是真的只是一種優化。你可以放棄它。

0

(_.*|\d+)$將在字符串的結尾匹配下劃線以後內容或數字。這是否符合您的要求? (我用http://www.regextester.com/進行測試。)

相關問題