【问题标题】:Java Remove dash from stringJava从字符串中删除破折号
【发布时间】:2013-08-07 14:00:04
【问题描述】:

它不是 Remove dash from a phone number 的副本 也许解决方案就在这里,但我不明白Can't remove dashes (-) from string

我必须从字符串中删除 al -(破折号),我必须删除“-”和“-”(破折号附近的所有空格) 这不起作用(什么都不做)

toclean.replaceAll("[\\s\\-()]", "");
        toclean.replaceAll("[\\s\\- ()]", "");
        toclean.replaceAll("[\\s\\ -()]", "");

想法?

【问题讨论】:

  • 您能否提供一个示例、您的预期结果以及每个示例的实际结果?
  • 第一个问题用 toclean= toclean.replaceAll("[\\s\\-()]", ""); 解决了
  • 你是正确的,你错过了分配。我不知道我怎么没抓住它。但是请注意,该正则表达式仍将删除所有空格,即使它不在连字符旁边。我不知道这是否符合您的要求。

标签: android string replace hyphen


【解决方案1】:

您希望破折号周围的所有空格,而您尝试过的正则表达式将从您的字符串中删除所有空格、破折号和括号。删除连字符及其周围空格的正则表达式是:

"[ ]?-[ ]?"

如果要删除任何空格,可以使用 \s:

"\\s?-\\s?"

这只会删除任何连字符前后最近的空格(因此,如果您之前有两个空格,它只会删除一个)。

【讨论】:

  • 在我的字符串中,我必须(仅)删除破折号和最近的空格。不是其他符号
  • 更新了我的答案。正则表达式现在将删除前后的连字符和最近的空格(如果有的话)(以前,它会匹配前后的所有空格)。
猜你喜欢
  • 2017-08-08
  • 1970-01-01
  • 1970-01-01
  • 2019-01-14
  • 1970-01-01
  • 1970-01-01
  • 2015-09-11
  • 2022-01-15
  • 2017-11-12
相关资源
最近更新 更多