“仅替换”;(“and”、“and”和“and”字符,带空格,使用Java

“仅替换”;(“and”、“and”和“and”字符,带空格,使用Java,java,regex,Java,Regex,我在用这个 s = s.replaceAll("\\W", ""); 这将替换所有特殊字符。我只希望替换“(),&”字符。使用java,这应该可以: s = s.replaceAll("[()&,]+", " "); replaceAll函数的第一个参数是正则表达式(regex)方括号内是整个字符串中要替换的字符。括号后的+表示这些括号内的任何字符,无论它们出现一次还是十几次,都将替换为第二个参数(在本例中,它只是一个空格)虽然我个人是ReGeX的狂热爱好者,但是很多开发者都被关

我在用这个

s = s.replaceAll("\\W", ""); 
这将替换所有特殊字符。我只希望替换“(),&”字符。使用java,这应该可以:

s = s.replaceAll("[()&,]+", " "); 

replaceAll函数的第一个参数是正则表达式(regex)方括号内是整个字符串中要替换的字符。括号后的+表示这些括号内的任何字符,无论它们出现一次还是十几次,都将替换为第二个参数(在本例中,它只是一个空格)虽然我个人是ReGeX的狂热爱好者,但是很多开发者都被关闭了。在这种情况下,你根本不需要使用正则表达式。如果你的项目中已经有了Apache共享库的Lang-Labor(或者想添加它),请考虑使用如下:

s = StringUtils.replaceChars(s, "()&,", null);

s=s.replaceAll(“[()&,]+”,”);
一个非单词字符:[^\w],这太多了,你只需要替换几个字符,试试@anubhava thingtanks anubhava。它有效你提到的“空格”在标题中-您可能想在@anubhava的建议代码中为字符类添加一个空格。@konqi我理解您为什么这么说,但这不是删除此答案的好理由。anubhava选择不发布答案,而只是发表评论。提供答案也是如此。如果此答案回答了问题,它应该保留,无论是谁我当然不知道阿努巴瓦是否选择不把这条评论作为回答。据我所知,他/她可能正在睡觉。无论如何,这不算是一个好的回答,因为它不能解释为什么这是答案。@konqi,我并不是说这是一个好的回答,只是指出“其他用户首先提供了相同的答案,作为一条评论”并不是删除它的好理由。您肯定是正确的,答案可以通过解释它的工作原理得到很大改进。@JeenBroekstra Fine-我删除了评论。