我已经搜索了几篇可能提供我需要的答案的帖子,但我找不到一个。
我想知道为什么这个正则表达式:
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(" "));