Java 正则表达式

标签 java regex

我需要删除某个项目列表末尾的一些字符。这些字符总是相同的(C、CD、PDF、CPDF、M),使用这个正则表达式我可以去掉它们:

str.replaceAll("(C|CD|PDF|CPDF|M)$", "");

但是,我无法反转此表达式:我希望能够隔离(例如,通过删除字符串的其余部分)任何这些代码,如果它们位于字符串。我试过这个:

str.replaceAll("!(C|CD|PDF|CPDF|M)$", "");

我可能会使用一些字符串函数,但我确信只使用正则表达式是可能的。

最佳答案

您已经使用括号来捕获匹配的组,现在只需引用该组即可。

    Matcher m = Pattern.compile("(C|CD|PDF|CPDF|M)$").matcher("165N1JCD");
    while (m.find()) {
        System.out.println(m.group(1)); // prints out "CD"
    }

关于Java 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1975418/

相关文章:

Java并发集合搜索

regex - 从数字部分字符串中删除逗号

javascript - 用于解析可能用引号表示的参数的正则表达式

Java : Replace \"with " and\/with/

Java Scanner 不会跟踪文件

java - 外键也是主键的实体的Spring Data Repository

java - 由于 PMF,AppEngine JDO 无法创建持久对象

php 正则表达式 preg_match 获取 css 类、id 和标签

python - 使用 Python 正则表达式对整个文本中随机放置的整数求和

带有utf8问题的python正则表达式