我有一个字符串,要删除除连字符,点和空格之外的所有特殊字符。
我正在使用filename.replaceAll("[^a-zA-Z0-9.-]","")
。它适用于.
和-
,但不适用于空间。
我应该添加些什么以使其也适用于空间?
答案 0 :(得分:1)
使用\s
或仅使用空格字符,如
Pattern
class javadoc
\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 .-]", "")
答案 1 :(得分:0)
您可以使用此正则表达式[^a-zA-Z0-9\s.-]
或[^a-zA-Z0-9 .-]
\s
匹配空白,(空格字符)仅匹配空格。
因此,在这种情况下,如果要匹配空格,请使用以下命令:
filename.replaceAll("[^a-zA-Z0-9\\s.-]", "");
如果只想匹配空间,请使用此:
filename.replaceAll("[^a-zA-Z0-9 .-]", "");