当给定的正则表达式为“.*”时,Java 8 的 String.replaceAll(regexStr, replacementStr) 不起作用。结果是replacementStr 的两倍。例如:
String regexStr = ".*";
String replacementStr = "REPLACEMENT"
String initialStr = "hello";
String finalStr = initialStr.replaceAll(regexStr, replacementStr);
// Expected Result: finalStr == "REPLACEMENT"
// Actual Result: finalStr == "REPLACEMENTREPLACEMENT"
Run Code Online (Sandbox Code Playgroud)
我知道当正则表达式为“.*”时,replaceAll() 并不完全有意义,但正则表达式不是硬编码的,可能是其他正则表达式字符串。为什么这不起作用?这是Java 8中的错误吗?
小智 5
// specify start and end of line
String regexStr = "^.*$";
String replacementStr = "REPLACEMENT"
String initialStr = "hello";
String finalStr = initialStr.replaceAll(regexStr, replacementStr);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
113 次 |
| 最近记录: |