首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >另一个Java RegEx问题

另一个Java RegEx问题
EN

Stack Overflow用户
提问于 2011-02-10 14:47:51
回答 1查看 83关注 0票数 3

我有以下代码:

代码语言:javascript
复制
public static void main(String[] args){
    StringBuilder content = new StringBuilder("abcd efg h i. -  – jk(lmn) qq zz.");
    String patternSource = "[.-–]($| )";
    Pattern pattern = Pattern.compile(patternSource);
    Matcher matcher = pattern.matcher(content);
    System.out.println(matcher.replaceAll(""));
}

其中patternSource字符类由点、减号和\u2013字符(类似于长划线)组成。在执行时会给出我

代码语言:javascript
复制
abcefi-  jk(lmn) qzz

如果我以任何方式改变字符类中符号的顺序,它就会正常工作,并给出

代码语言:javascript
复制
abcd efg h i jk(lmn) qq zz

搞什么鬼?

在JDK/JRE 1.6.0_23下测试

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-10 14:51:22

如果字符类中有一个未转义的连字符,那么它就有一个特殊的含义:例如,A-Z表示A和Z之间的所有字符。

例外情况是当连字符位于字符类的开始或结尾时,在这种情况下,它被逐字处理,并且只与连字符匹配。

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

https://stackoverflow.com/questions/4954183

复制
相关文章

相似问题

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