繁体   English   中英

用Java在2个字符串之间替换字符串

[英]Replace String between 2 strings in Java

我正在尝试查找所有出现的字符串集,并在新值中替换它们之间的内容。 我已经尝试了在此站点上找到的所有Java / regex示例,但是都没有用。 该字符串的示例如下所示:

"TestValue 1 VARCHAR(10), TestValue2 FLOAT(126), TestValue3 FLOAT(135)"

我想查找并用53替换“ FLOAT(”和“)”之间的所有值,以便将上述字符串替换为:

"TestValue 1 VARCHAR(10), TestValue2 FLOAT(53), TestValue3 FLOAT(53)"

我该如何使用String.replaceAll?

我试过了replaceAll("FLOAT(.*?)", "53") ,它只是替换了FLOAT所以字符串看起来像:

"TestValue 1 VARCHAR(10), TestValue2 53(126), TestValue3 53(135)"

您可以使用\\(\\)转义文字括号,然后使用\\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)

这要简单得多-您的替换是固定的(它不取决于匹配的文本)-您总是想用FLOAT(53)替换

所以使用正则表达式

FLOAT\(\d+\)

和更换

FLOAT(53)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM