我想用以下模式替換七位或更多位數。用它的後四位替換數字
1234567
到4567/1234567
我使用正則表達式如下匹配的數量(\d*(\d{4}))
,並與$2/$1
取代它是否有任何有效的方式來做到這一點?
我想用以下模式替換七位或更多位數。用它的後四位替換數字
1234567
到4567/1234567
我使用正則表達式如下匹配的數量(\d*(\d{4}))
,並與$2/$1
取代它是否有任何有效的方式來做到這一點?
更有效的方法是(\d+(\d{4}))
,因爲當你少於5位數字時,你不需要做任何事情。更準確地說,你可以使用範圍內的字符類,因爲你只使用ascii數字:([0-9]+([0-9]{4}))
(\d
的確可以包含各種數字,如٢
,如果\d
被看作unicode含義)。
我沒有看到更好的模式結構。但如果你有幾個數字(不到九),使用非貪婪的量詞可能會更好:
([0-9]+?([0-9]{4}))
有沒有你想用正則表達式,而不是與你的任何代碼庫做一個特別的原因使用像java或c + +?正則表達式很適合查找事物,但我不一定會用它來替換和添加字符串。它只是變得混亂。 – 2014-10-31 20:42:32
你在用什麼語言? – 2014-10-31 20:44:08
我正在使用C#,但我有一個來自數據庫的字符串中的很多數字。我認爲用正則表達式替換它很容易。 – ogun 2014-10-31 20:49:22