正则表达式(')vs(,)

时间:2019-11-11 16:47:01

标签: java regex

我正在尝试从字符串中删除某些字符,但是我的正则表达式在字符(')和(,)之间造成混淆。 这是我的代码,但不会删除(,)字符:

String str2 = "word,string,phrase";
System.out.println("----- " + str2.replaceAll("\\s+", " ").replaceAll("\\W+^'", " "));

如何指定正则表达式删除(,)而不删除(')。 输出示例:

  

单词字符串短语

我的目标是删除除单词(不要)中的字符(')以外的所有非单词 预先谢谢你。

1 个答案:

答案 0 :(得分:3)

  

如何指定正则表达式以删除(,)而不删除(')。

     

我的目标是删除除单词(不)外的所有非单词('),

通过“删除(,)”,看来您要替换为空格。

通过“删除所有非单词”,看来您的意思是与\W匹配的任何东西,除了:

  • '应该保留
  • ,,应以空格代替

因此,首先,找到所有不是\w', 的字符:

[^\w',]

将所有内容{@ {1}}替换为空之后,也可以将它们全部替换为空:

,

这意味着原始字符串中的所有空格也将被删除,这与所描述的规则一致,因为空格是非单词。