我需要在某个项目列表的末尾删除一些字符.这些字符总是相同的(C,CD,PDF,CPDF,M),通过这个正则表达式,我可以摆脱它们:
str.replaceAll("(C|CD|PDF|CPDF|M)$", "");
Run Code Online (Sandbox Code Playgroud)
但是,我无法反转这个表达式:如果它们位于字符串的末尾,我希望能够隔离(通过删除字符串的其余部分,例如)这些代码中的任何一个.我试过这个:
str.replaceAll("!(C|CD|PDF|CPDF|M)$", "");
我可能通过使用一些字符串函数,但我确信它只能使用正则表达式.
小智 5
您已经使用括号来捕获匹配组,现在只需引用该组.
Matcher m = Pattern.compile("(C|CD|PDF|CPDF|M)$").matcher("165N1JCD");
while (m.find()) {
System.out.println(m.group(1)); // prints out "CD"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
310 次 |
| 最近记录: |