如何在Java正则表达式中转义特殊字符,该字符仅在运行时

时间:2016-12-21 23:34:57

标签: java regex

当\和“是字符串的一部分时,

Pattern.quote(”/:*?“<> |#”)似乎不起作用。

代码将在运行时收到允许使用的特殊字符,例如"\/:*?"<>|#",因此此处\"需要转义。

我的代码需要执行的操作:使用默认字符~

替换除字母数字以外的所有字符和允许的特殊字符

到目前为止我所写的内容:

String replacer = "~"; 

String fileName = path.replaceAll("[^\\p{IsAlphabetic}^\\p{IsDigit}\\:*?\"<>|#~]", replacer); 

这很有效。但是,如果只允许在运行时知道允许的特殊字符,我如何概括解决方案。 我尝试将\\附加到每个允许的特殊字符,但在这种情况下\"会抛出错误。

0 个答案:

没有答案