0

我有一个这样的字符串:

1234-A description-987-456

我能够删除字符串末尾的空格,但不能删除中间的空格(就在描述之后)

1234-A description    -987-456

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

但我觉得这样的解决方案不够优雅......

我的尝试是:

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

但没有成功。

正则表达式示例

4

2 回答 2

1

怎么样:

搜索:\s+-
替换:-

于 2013-10-04T08:50:52.483 回答
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
于 2013-10-04T08:32:47.073 回答