Java replaceAll 因源字符串中的美元符号而失败

标签 java regex

假设我有以下代码

String test = "$abc<>";
test = test.replaceAll("[^A-Za-z0-9./,#-' ]", "");

test 现在是“$abc”。

为什么要保留美元符号?

最佳答案

要保留的字符列表包括 #-',范围从 Unicode U+0023(# 符号)到​​ U+0027(' 符号), 包括$ (U+0024).

如果您想让 #-' 被解释为三个字符的列表,只需将其转义即可:

test = test.replaceAll("[^A-Za-z0-9./,#\\-' ]", "");

或者放在列表末尾:

test = test.replaceAll("[^A-Za-z0-9./,#' -]", "");

关于Java replaceAll 因源字符串中的美元符号而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42167920/

相关文章:

java - 使用 UUID.randomUUID(),类型 4 UUID

java - 我正在尝试将 mongodb 与 spring boot 连接。我很困惑何时使用以下 : 中的哪个 Maven 依赖项

c++ - 如何在字符串的反面使用正则表达式?

java - 如何更改java中标签之间的内容?

java - 在 hibernate 中创建序列 ID

java - Maven 从命令行运行批处理,java.lang.NoClassDefFoundError

java - 如何使周期性事件在 AsyncTask 的 doInBackground 中的每个周期性间隔运行

Python - 如何从列表中删除特定单词?

REGEX:如果 KeyWord2 在同一个字符串中,则选择 KeyWord1

regex - 使用 RegEx 终止列表中的过滤器