【问题标题】:How to remove preceding and trailing whitespaces of Hyphen in a String, using Java or Regular expressions?如何使用 Java 或正则表达式删除字符串中连字符的前后空格?
【发布时间】:2017-09-21 01:24:48
【问题描述】:

如何删除连字符之间的所有空格以及后续字符串中的前后单词?

String s = "O Jesus  -   Jesus Jesus-O -     Jesus  - O -O";
s.replaceAll("  -   ", "-"); <- This only replaces first spacy-hyphen with hyphen 

我们在空格数之间的未知位置使用连字符获取其他搜索词。正则表达式如何处理相同的?需要相同的全局解决方案。

需要输出:

"O Jesus-Jesus Jesus-O-Jesus-O-O";

尝试拆分、修剪和合并,但代码看起来很垃圾。需要一些捷径。

【问题讨论】:

  • 你想要什么输出?
  • s.replaceAll("\\s*-\\s*", "-"); 应该这样做!
  • @YCF_L:更新了输出描述。
  • 你试过什么?你刚刚抛弃了需求?!
  • 尝试拆分和修剪并重新连接,但代码看起来很垃圾:(

标签: java regex string


【解决方案1】:

正则表达式将允许您指定未知数量的空格:

s = s.replaceAll("\\s*-\\s*", "-");

\\s* 表示 0 个或多个空格。

输出将是:O Jesus-Jesus Jesus-O-Jesus-O-O

【讨论】:

  • 非常感谢。在另一种情况下,有没有办法避免删除已经连接到“O-God - My - God”之类的单词的连字符的空格
  • \\s* --> \\s+
  • 此解决方案无视“前置尾随词”要求。它将用-Yes. 替换- Yes.,用No- 替换No -。也许这不是问题。
猜你喜欢
  • 1970-01-01
  • 2018-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多