2009-12-08 85 views
3

我有这个字符串:的Java:正则表达式替换

foo bar 567 baz 

现在我想每个数字字符串num:之前添加。
所以结果必须是:

foo bar num:567 baz 

而且这有工作:

foo 73761 barbazboom!! 87 
result: 
foo num:73761 barbazboom!! num:87 

搜索数量的正则表达式是这样的:[0-9]+
但我想更换匹配与num:串+ [匹配子串]

我现在写了一个带数字的例子,但另一个例子可以是:在每个电子邮件地址前添加Email found:

+0

请问您可以发布'num:[0-9] +'的代码吗? – 2009-12-08 12:01:13

+0

单词中的数字应该发生什么 - 123foo,foo123或foo123foo?然后有签名的数字(-123),格式化的数字(1,234)和小数(1,234.567)。 – Greg 2009-12-08 12:04:00

+0

@Greg:只需编辑正则表达式,不是吗? – 2009-12-08 12:12:49

回答

8

利用分组。您可以使用括号()来定义组并在结果中标识该组,其中n是组索引。

String string = "foo bar 567 baz"; 
String replaced = string.replaceAll("(\\d+)", "num:$1"); 
+0

非常感谢。清除anwser。 – 2009-12-08 12:11:27

4
"foo bar 567 baz".replaceAll("(\\d+)", "num:$1");