Nee*_*raj 6 java regex string replaceall
如何用Java中的fullstop替换字符串中的所有"("和")"?我试着用以下方式:
String url = "https://bitbucket.org/neeraj_r/url-shortner)";
url.replaceAll(")", ".");
url.replaceAll(")", ".");
Run Code Online (Sandbox Code Playgroud)
但它不起作用.错误是:
Exception in thread "main" java.util.regex.PatternSyntaxException: Unmatched closing
')'
)
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.<init>(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.lang.String.replaceAll(Unknown Source)
at com.azzist.cvConversion.server.URLChecker.main(URLChecker.java:32)
Run Code Online (Sandbox Code Playgroud)
我认为这个问题也存在于所有正则表达式中.\之前添加)不起作用.
ben*_*y23 17
你可以一次性使用replaceAll:
url.replaceAll("[()]", ".")
Run Code Online (Sandbox Code Playgroud)
说明:
[()]匹配两者(并且),括号不需要在[]组内转义.编辑(由@Keppil指出):
另请注意,url替换时不会更改String ,它只返回带有替换的新String,因此您必须执行以下操作:
url = url.replaceAll("[()]", ".");
Run Code Online (Sandbox Code Playgroud)
mun*_*ngm 12
你需要逃避'('和')'与"\\("和"\\)"分别为:
url = url.replaceAll("\\)", ".");
url = url.replaceAll("\\(", ".")
Run Code Online (Sandbox Code Playgroud)
replaceAll()期望regex作为第一个参数,并且parantheses在那里具有特殊意义.
replace()改为使用:
String url = "https://bitbucket.org/neeraj_r/url-shortner)";
url = url.replace("(", ".").replace(")", ".");
Run Code Online (Sandbox Code Playgroud)
请注意,该url =部件对于保存更换结果非常重要.由于Strings是不可变的,原始版本String不会更改,但会创建一个新版本.为了保持结果url需要指向这一个.
| 归档时间: |
|
| 查看次数: |
32583 次 |
| 最近记录: |