查找和替换字符串中的字符

时间:2015-02-23 21:44:39

标签: java regex

我是Java的新手,正在寻找一个优化的代码来查找某些字符并将其替换为另一个字符。

我可以得到的可能的字符串是,

ABC-2233JDK_KD&ERF
PQR-422KF@FG_344GG
XYZ-99848^KDF_FDFG

字符串中允许的字符是字母数字和" - "和" _"

除了这些之外的任何东西都需要用" - "

替换

例如,上面的第一个字符串将成为

ABC-2233JDK_KD-ERF

我想出了一个RegEx来查找字符串以外的字符。

^[a-zA-Z0-9_-]+\$

是否有一种简单的方法可以在Java中替换字符串中的无效字符?

这里的无效字符除了字母数字,短划线(" - ")和下划线(" _")之外的任何其他字符。

1 个答案:

答案 0 :(得分:3)

你可以使用:

String repl = input.replaceAll("[^\\w-]+", "");

^否定整个字符类,\w包含[a-zA-Z0-9_],我们会根据您的要求在此处添加连字符。