删除组末尾的空格

时间:2013-10-04 08:25:12

标签: regex whitespace

我有一个字符串:

1234-A description-987-456

我能够删除字符串末尾的空格,但不能删除中间的空格(仅在说明之后)

1234-A description    -987-456

当然,解决方案是使用第一个正则表达式拆分组,然后使用这样的正则表达式删除最后一个空格:(.*)(\s*)用EMPTY替换2.组。

但我发现这样的解决方案不够优雅......

我的尝试是:

(.)(\d{3})-(.+)(\s*)-(\d{3})\s*-\s*(\d+)

但没有成功。

Regex examples

2 个答案:

答案 0 :(得分:1)

只需使.+懒惰(即.+?),否则它也将占用所有空格,而不会为\s*留下任何内容(使用延迟量词,它会消耗尽可能少的字符。)

此外,您可以删除\s*周围的括号,然后替换\1...\2...\3...\4...\5

(.)(\d{3})-(.+?)\s*-(\d{3})\s*-\s*(\d+)

虽然如果你想删除所描绘的空格,你可以删除大部分括号:

替换:

(.\d{3}-.+?)\s*(-\d{3}\s*-\s*\d+)

使用:

\1\2

答案 1 :(得分:1)

怎么样:

搜索:\s+-
替换:-