我有一个字符串,我想在其中删除除连字符、点和空格之外的所有特殊字符。
我正在使用filename.replaceAll("[^a-zA-Z0-9.-]","")
。它适用于.
和-
,但不适用于空间。
我应该添加什么才能使它也适用于太空?
如-
类javadoc 中所述,使用s
或仅使用空格字符
s - A whitespace character: [ tnx0Bfr]
- Literal space character
您必须将-
字符转义为[^a-zA-Z0-9s.-]
,这样它就不会被解释为范围表达式,或者确保它保留为最后一个正则表达式字符。综合起来:
filename.replaceAll("[^a-zA-Z0-9\s.-]", "")
filename.replaceAll("[^a-zA-Z0-9 .-]", "")
您可以使用此正则表达式[^a-zA-Z0-9 .-]
或s
CCD_11匹配空白,(空格字符(只匹配空格。
因此,在这种情况下,如果你想匹配空白使用这个:
filename.replaceAll("[^a-zA-Z0-9\s.-]", "");
如果你只想匹配空间,请使用这个:
filename.replaceAll("[^a-zA-Z0-9 .-]", "");