【问题标题】:Find and Replace characters in a string [duplicate]查找和替换字符串中的字符[重复]
【发布时间】:2015-04-25 09:12:45
【问题描述】:

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

我可能得到的字符串是,

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

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

除此之外的任何东西都需要用“-”替换

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

ABC-2233JDK_KD-ERF

我想出了一个正则表达式来查找包含允许字符之外的字符的字符串。

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

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

这里的无效字符是字母数字、破折号(“-”)和下划线(“_”)以外的任何字符。

【问题讨论】:

  • 这里已经回答了这个问题。看看:*.com/questions/15249047/…
  • 您已将^ 放在字符类之外,并且应删除尾随\$。否则,您的正则表达式就可以了。

标签: java regex


【解决方案1】:

你可以使用:

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

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

【讨论】:

    最近更新 更多