正则表达式符合更多标准

时间:2016-04-03 05:25:55

标签: regex

在java中,我想在测试字符串中只保留字母,但我也想从中删除Poppins这个词。 我目前有:

String test = "01 - Poppins - Poppins - Asurrect";
System.out.println(test.replaceAll("[^(A-Za-z\\s)]", "").trim());
这给了我: Poppins Poppins Asurrect

但我想要Asurrect。

如果可能的话,我更愿意将它连接到我当前的正则表达式,没有任何花哨的东西。

1 个答案:

答案 0 :(得分:2)

如果您只想使用纯正则表达式,请使用正则表达式替换:

String test = "01 - Poppins - Poppins - Asurrect";
System.out.println(test.replaceAll("\\bPoppins\\b|[^A-Za-z\\s]+", "").trim());
//=> Asurrect
  • \b用于字边界。
  • 您没有必要在问题中显示的字符类中使用(...)
  • 最好使用量词来最小化替换。

RegEx Demo