Python如何高效将指定字符前多个连续空格替换为单个空格
解决方案
直接使用正则表达式一次性完成全局匹配替换即可,仅需单次遍历字符串,效率远高于循环逐次替换的方案。
核心规则
- 匹配逻辑:匹配2个及以上连续半角空格 + 指定字符(以下以
&为例),正则匹配规则为{2,}& - 替换逻辑:替换为单个空格 + 指定字符,即
&
常见语言实现示例
JavaScript
// 固定匹配&的场景 str = str.replace(/ {2,}&/g, ' &'); // 通用灵活写法,修改括号内的内容即可切换指定匹配字符 str = str.replace(/ {2,}(&)/g, ' $1');
Python
import re # 固定匹配&的场景 str = re.sub(r' {2,}&', r' &', str) # 通用灵活写法 str = re.sub(r' {2,}(&)', r' \1', str)
Java
// 固定匹配&的场景 str = str.replaceAll(" {2,}&", " &"); // 通用灵活写法 str = str.replaceAll(" {2,}(&)", " $1");
注意事项
如果指定字符为正则保留特殊字符(如
.、*、+、?等),需要在字符前加反斜杠\转义后再写入正则规则。
内容的提问来源于stack exchange,提问作者Fortranner
相关产品推荐
相关产品推荐

