java - 如何从字符串中删除除 - 之外的所有特殊字符。和空间

标签 java regex string

我有一个字符串,我想在其中删除除连字符、点和空格之外的所有特殊字符。

我正在使用 filename.replaceAll("[^a-zA-Z0-9.-]","")。它适用于 .- 但不适用于空间。

我应该添加什么才能让它也适用于空间?

最佳答案

Pattern class javadoc 中所述,使用 \s 或仅使用空格字符

\s - A whitespace character: [ \t\n\x0B\f\r]
   - Literal space character

您必须将 - 字符转义为 \-,这样它就不会被解释为范围表达式,或者确保它保留为最后一个正则表达式字符。把它们放在一起:

filename.replaceAll("[^a-zA-Z0-9\\s.-]", "")
filename.replaceAll("[^a-zA-Z0-9 .-]", "")

关于java - 如何从字符串中删除除 - 之外的所有特殊字符。和空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53629614/

相关文章:

java - 如何使用带有内容的 spring boot Controller 下载 csv 文件?

java - Kotlin 文件到 kotlin 类

java - jsp中如何转义引号和反斜杠?

java - 如何使用正则表达式检查 Java 中的确切电话号码

c++ - 在附加之前将 "number 0"转换为 char

java - 如何计算/近似递归函数的堆栈帧使用的内存?

regex - 关于正则表达式中的问号

javascript - 我怎样才能使这个 "percentage-only"Regex 工作?

xml - 解析 XML 文件时显示部分内容

python - 如何在 Python 中检测小写字母?