3 回答

TA贡献1824条经验 获得超6个赞
如果您只想知道替换了什么。我建议一个快速调试的想法,而不是试图手动找出。
将 a
System.out.println(mhStr)
作为方法的第一行。在 if 语句的末尾替换
return
为;System.out.println(....)
不要忘记更改方法签名以返回 null。所以,private void testRegEx(String myStr) {
检查控制台输出以查看打印的两行并进行比较。你会立即知道发生了什么。
使用您希望对代码进行的任何修改来还原更改。
编辑:
在第二步中,只需 System.out.println(...) 并让您的代码保持原样。感谢在下面指出的人。更好的方法来做到这一点。
因此,例如,如果您希望StringUtils.normalizeSpace(res)
在该行之前进行比较,请System.out.println(StringUtils.normalizeSpace(res));
在第 1 点之后进行。

TA贡献1786条经验 获得超11个赞
正如@SpinyBabbler 提到的那样,经过反复试验,我们知道了一些字符,因此为避免所有混淆,我们在此链接后仅替换非 ASCII 字符: Replace non ASCII character from string
最后它使用这种模式: str1.replaceAll("[^\x00-\x7F]|[\u0001]", "");
感谢您提供的所有支持。
添加回答
举报