java - 正则表达式字符集 [^\\w\\d\\s\\&] 不起作用

标签 java regex

我搜索了几篇可能提供我需要的答案的帖子,但没有找到。

我想知道为什么这个正则表达式:

Pattern.compile("[^\\w\\s\\d\\&]")

不能在像这样的字符串上正常工作:

"AE&E randomstr§%%%ing b§)$§$/bla & some text"

结果将是(经测试):

"AE E randomstring blabla some text"

尽管我特意排除了&符号。之前的标记是否覆盖了它?谁能解释一下这背后的逻辑吗?

我的代码:

    String str = "AE&E randomstr§%%%ing b45747bla & some text";
    Pattern pattern = Pattern.compile("[^\\w\\s\\d\\&]");
    Matcher matcher = pattern.matcher(str);
    str = StringUtils.normalizeSpace(matcher.replaceAll(" "));

最佳答案

它工作正常。 由于您将 & 符号从允许的字符中排除,因此它被替换。

关于java - 正则表达式字符集 [^\\w\\d\\s\\&] 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12921019/

相关文章:

java - 将对象保存到文件中,并在以后向其中添加更多对象

php - 正则表达式在字符串中查找PHP变量

python - 的影响?在正则表达式字符串中

javascript - 如何在jquery中提取字符串部分并忽略数字?

java - RunOnUiThread 无法直接访问 Message

java - BorderLayout 中的 JLabel 居中,行尾有一个按钮

java - 如何在基于 Spring DAO 的应用程序中实现 xml?

java - 在我的java项目中添加jdom.jar

regex - 在 Google Analytics(分析)目标漏斗步骤中使用正则表达式

正则表达式在 Perl 中不匹配