如何去除字符串中被空格拆分的单字母拼写单词内部的多余空格?
解决方案
你要实现的核心是只删除独立单个英文字母之间的空格,保留正常长度单词之间的空格,可以用正则查找替换实现,该方案兼容绝大多数主流编程语言的正则引擎,具体规则如下:
- 查找正则:
\b([a-zA-Z]) (?=[a-zA-Z]\b) - 替换内容:
$1
正则逻辑说明
\b匹配单词边界,确保前后是独立的字符单元([a-zA-Z])捕获单个英文字母存入分组1- 空格 匹配两个字母中间需要删除的空格
(?=[a-zA-Z]\b)正向预查,确认空格后同样是单个独立的英文字母,避免误删正常单词之间的空格
原正则失效原因
你之前用的[^ ]+(\s)会匹配所有非空字符序列后的空格,没有区分前后字符的长度,自然会把所有空格都命中,无法满足差异化处理的需求。
用上述规则测试你给出的样例文本,完全可以得到你预期的输出结果。
内容的提问来源于stack exchange,提问作者lolc
相关产品推荐
相关产品推荐

