删除java中字符串中的特殊字符?

Min*_*ato 2 java regex special-characters

如何删除字符串中除" - _"之外的特殊字符.现在我使用:

replaceAll("[^\\w\\s]", "")
Run Code Online (Sandbox Code Playgroud)

它删除所有特殊字符,但我想保留" - _".谁能告诉我该怎么办?

zmb*_*mbq 12

使用 replaceAll("[^\\w\\s\\-_]", "");

我所做的是在正则表达式中添加下划线和连字符.我\\在连字符之前添加了一个,因为它也用于指定范围:a-z表示a和z之间的所有字母.逃避它\\确保它被视为连字符.

  • 我认为`-`必须是该集合的最后一个元素,因为如果不是它被认为是"范围". (3认同)
  • OP似乎对regexen没有透彻的了解.如果你解释你做了什么以及它是如何工作的,那会更好. (3认同)
  • 你能在中间放一个`-`吗? (2认同)

nKn*_*nKn 5

这可能有所帮助:

replaceAll("[^a-zA-Z0-9_-]", "");