我想在java中使用正則表達式來僅剝離數字,如果它們位於字符串的末尾和下劃線之後的所有內容。正則表達式在字符串末尾_處去除結尾數字或字符
1) massi_xxx -> massi
2) massi_12121 -> massi
3) massi123 -> massi
4) 123massi1 -> 123massi
我發現
(?= [0-9 _])。* 爲1,2,3的用例工作正常,但不是4) 如何改進它的主意?
感謝 M.
我想在java中使用正則表達式來僅剝離數字,如果它們位於字符串的末尾和下劃線之後的所有內容。正則表達式在字符串末尾_處去除結尾數字或字符
1) massi_xxx -> massi
2) massi_12121 -> massi
3) massi123 -> massi
4) 123massi1 -> 123massi
我發現
(?= [0-9 _])。* 爲1,2,3的用例工作正常,但不是4) 如何改進它的主意?
感謝 M.
以下的正則表達式應適用於大多數的口味:
(?:_.*|\d*)$
我們既匹配之後任何事情,直到字符串的結尾_
。或者我們匹配一堆數字直到字符串結束。 (字符串的結尾由錨$
表示)
有些味道可能遏制於?:
這是真的只是一種優化。你可以放棄它。
(_.*|\d+)$
將在字符串的結尾匹配下劃線以後內容或數字。這是否符合您的要求? (我用http://www.regextester.com/進行測試。)
您正在使用哪種語言或工具? –