我正在尝试使用以下代码替换整个字符串:
代码: String a = "Hello"; String b = a.replaceAll("(?s).*", "US");
输出:
USUS
问题:为什么字符串“ US”重复两次?如何使用正则表达式使用replaceAll函数替换整个字符串?
为什么需要这样做:我需要使用给定值在json文件中指定替换模式。在此模型中,我想赋予用户(json configurer)独立性以定义一种模式,以便可以替换整个字符串,而无需编写特殊的字符串替换处理代码。
这是因为.*
可以匹配一个空字符串。因此,第一个匹配项是所有字符串(从头开始),第二个匹配项是空字符串(从字符串中最后一个字符之后的最后位置开始)
您可以使用+
量词而不是来避免这种现象*
。但是它不会替换空字符串。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句