0

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

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

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

词串词组

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

4

1 回答 1

3

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

我的目标是删除除单词(不要)中的字符(')之外的所有非单词

通过“删除(,)”,您的意思似乎是用空格替换。

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

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

所以首先,让我们找出所有不是\w, ', 或,的字符:

[^\w',]

在将它们替换为空之后,也就是删除它们,我们可以简单地将所有替换,为空格:

str2.replaceAll("[^\\w',]", "").replaceAll(",", " ")

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

于 2019-11-11T17:19:17.203 回答