我试图用括号内的数字本身替换字符串中的任何数字序列。 所以输入:
"i ee44 a1 1222"
应该作为输出:
"i ee(44) a(1) (1222)"
我正在尝试使用String.replace(a,b)来实现它,但没有成功。
答案 0 :(得分:7)
"i ee44 a1 1222".replaceAll("\\d+", "($0)");
试试这个,看它是否有效。
由于您需要使用正则表达式,因此您可以考虑使用replaceAll
代替replace
。
答案 1 :(得分:3)
您应该使用replaceAll
。此方法使用两个参数
regex
我们想要找到的子字符串replacement
用于替换匹配的子字符串。在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)");