如何表示反斜杠

2024-02-16

我想替换不在提供的列表中的

[^-\\dA-Za-zÂÃâ`~!@#$%^&*()_+=[{]}:;<,>.?/ ]

我想包含反斜杠\在此列表中,这样反斜杠就不会被替换。 如果我这样给予

.replaceAll("[^-\\dA-Za-zÂÃâ`~!@#$%^&*()_+=[{]}\\:;<,>.?/ ]","")

它没有按我的预期工作。

"xyda\asff"..replaceAll("[^-\\dA-Za-zÂÃâ`~!@#$%^&*()_+=[{]}\\:;<,>.?/ ]","")

Expected result :: xyda\asff
Output :: xydaasff

我不想更换\.


您需要申请two转义级别 - 一种用于正则表达式本身,另一种用于 Java 字符串文字。这意味着你需要four连续的反斜杠。所以:

replaceAll("[^-\\dA-Za-zÂÃâ`~!@#$%^&*()_+=[{]}\\:;<,>.?/\\\\ ]", "")

我假设\\d旨在覆盖任何数字,而不是actually推杆d在列表中?

您可能会发现最简单的方法是将模式打印到控制台,这样您就可以准确地看到正则表达式引擎所看到的内容,而无需进行相关的 Java 字符串文字转义。上面的模式是:

[^-\dA-Za-zÂÃâ`~!@#$%^&*()_+=[{]}\:;<,>.?/\\ ]

所以带反斜杠的位是:

  • \d (digit)
  • \: (colon)
  • \\(反斜杠)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何表示反斜杠 的相关文章

随机推荐