首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带'*‘的replaceAll

带'*‘的replaceAll
EN

Stack Overflow用户
提问于 2013-06-27 14:34:29
回答 6查看 5.2K关注 0票数 0

具有包含'*‘的值的replaceAll将引发异常。

我试过了

代码语言:javascript
复制
String tmp = "M ******* k";

tmp = tmp.replaceAll("****","NOT");

System.out.println("TMP is :"+tmp);

我得到了一个例外

代码语言:javascript
复制
Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0

为什么带有*replaceAll会有这种行为,我该如何克服这个问题?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-06-27 14:36:32

中的第一个参数采用正则表达式。字符'*‘在正则表达式中有特殊的含义。

将此字符串中与给定正则表达式匹配的每个子字符串替换为给定的替换。

因此,如果您想要匹配文字character '*'.,则必须对其进行转义

使用"\\*".

oracle forum on the same

票数 11
EN

Stack Overflow用户

发布于 2013-06-27 14:46:17

您可以查看以下代码以供参考:

代码语言:javascript
复制
 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

票数 4
EN

Stack Overflow用户

发布于 2013-06-27 14:36:40

试一试

代码语言:javascript
复制
tmp = tmp.replaceAll("\\*+","NOT");

More

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17336094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档