Java,如何替换字符串中的数字序列

时间:2013-10-24 21:29:34

标签: java regex replace numbers

我试图用括号内的数字本身替换字符串中的任何数字序列。 所以输入:

"i ee44 a1 1222"  

应该作为输出:

"i ee(44) a(1) (1222)"

我正在尝试使用String.replace(a,b)来实现它,但没有成功。

3 个答案:

答案 0 :(得分:7)

"i ee44 a1 1222".replaceAll("\\d+", "($0)");

试试这个,看它是否有效。

由于您需要使用正则表达式,因此您可以考虑使用replaceAll代替replace

答案 1 :(得分:3)

您应该使用replaceAll。此方法使用两个参数

  1. regex我们想要找到的子字符串
  2. replacement用于替换匹配的子字符串。
  3. replacement部分中,您可以使用$x通过x使用正则表达式匹配"ab cdef".replaceAll("[a-z]([a-z])","-$1") ,其中-是群组索引。例如

    $1

    将生成新的字符串,并用-b -d-f替换每两个小写字母和第二个当前匹配的字母(注意第二个字母放在括号中,这意味着它在第1组中,因此我可以在替换部分中使用它使用{{1}}),结果将为{{1}}。

    现在尝试使用它来解决您的问题。

答案 2 :(得分:1)

您可以将String.replaceAll与正则表达式一起使用:

"i ee44 a1 1222".replaceAll("(\\d+)", "($1)");