具有包含'*‘的值的replaceAll将引发异常。
我试过了
String tmp = "M ******* k";
tmp = tmp.replaceAll("****","NOT");
System.out.println("TMP is :"+tmp);我得到了一个例外
Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0为什么带有*的replaceAll会有这种行为,我该如何克服这个问题?
发布于 2013-06-27 14:36:32
中的第一个参数采用正则表达式。字符'*‘在正则表达式中有特殊的含义。
将此字符串中与给定正则表达式匹配的每个子字符串替换为给定的替换。
因此,如果您想要匹配文字character '*'.,则必须对其进行转义
使用"\\*".
发布于 2013-06-27 14:46:17
您可以查看以下代码以供参考:
public static void main (String[] args)
{
String tmp = "M ******* k";
tmp = tmp.replaceAll("\\*","NOT");
System.out.println("TMP is :"+tmp);
}'*‘是正则表达式的特殊字符,在java.So中需要遵循正则表达式的规则。
http://docs.oracle.com/javase/tutorial/essential/regex/quant.html
发布于 2013-06-27 14:36:40
试一试
tmp = tmp.replaceAll("\\*+","NOT");More;
https://stackoverflow.com/questions/17336094
复制相似问题