我想用以下模式替换七位或更多位数。用它的后四位替换数字
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