我有一个字符串:
1234-A description-987-456
我能够删除字符串末尾的空格,但不能删除中间的空格(仅在说明之后)
1234-A description -987-456
当然,解决方案是使用第一个正则表达式拆分组,然后使用这样的正则表达式删除最后一个空格:(.*)(\s*)
用EMPTY替换2.组。
但我发现这样的解决方案不够优雅......
我的尝试是:
(.)(\d{3})-(.+)(\s*)-(\d{3})\s*-\s*(\d+)
但没有成功。
答案 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+-
替换:-