我试图用括号内的数字本身替换字符串中的任何数字序列。所以输入:
"i ee44 a1 1222"
应该有一个输出:
"i ee(44) a(1) (1222)"
我正在尝试使用 String.replace(a,b) 来实现它,但没有成功。
"i ee44 a1 1222".replaceAll("\\d+", "($0)");
试试这个,看看它是否有效。
由于您需要使用正则表达式,您可以考虑使用replaceAll
而不是replace
.
你应该使用replaceAll
. 此方法使用两个参数
regex
对于我们要查找的子字符串replacement
应该用什么来替换匹配的子字符串。在replacement
某种程度上,您可以通过where is group index使用由正则表达式匹配的组。例如$x
x
"ab cdef".replaceAll("[a-z]([a-z])","-$1")
将产生新的字符串,每两个小写字母替换为-
第二个当前匹配的字母(注意第二个字母放在括号中,所以这意味着它在第 1 组中,所以我可以在替换部分中使用它$1
)所以结果将是-b -d-f
.
现在尝试使用它来解决您的问题。
您可以使用String.replaceAll
正则表达式:
"i ee44 a1 1222".replaceAll("(\\d+)", "($1)");