我试图查找一组字符串的所有匹配项,并在新值中替换它们之间的内容。我已经尝试了在本网站上找到的Java /正则表达式的所有示例,但没有一个有效。字符串的示例如下所示:
"TestValue 1 VARCHAR(10), TestValue2 FLOAT(53), TestValue3 FLOAT(53)"
我想找到并替换" FLOAT("和")"之间的所有值。使用53使上述字符串替换为:
replaceAll("FLOAT(.*?)", "53")
如何使用String.replaceAll执行此操作?
我尝试了FLOAT
,它只是替换"TestValue 1 VARCHAR(10), TestValue2 53(126), TestValue3 53(135)"
所以字符串看起来像:
{{1}}
答案 0 :(得分:3)
您可以使用\(
和\)
来转义字面括号,然后使用\d+
来匹配数字。像,
String s = "TestValue1 VARCHAR(10), TestValue2 FLOAT(126), TestValue3 FLOAT(135)";
System.out.println(s.replaceAll("FLOAT\\(\\d+\\)", "FLOAT(53)"));
输出(按要求)
TestValue1 VARCHAR(10), TestValue2 FLOAT(53), TestValue3 FLOAT(53)
答案 1 :(得分:2)
它更简单 - 您的替换是固定的(它不依赖于匹配的文本) - 您总是希望替换为FLOAT(53)
所以使用正则表达式
FLOAT\(\d+\)
和替换
FLOAT(53)