如何用RegEx将字符串与数字间的多空格替换为单个空格?
解决版本标识与版本号之间多空格的正则方案
没问题,我来帮你搞定这个多空格的问题!你的核心需求是把Version或App Version和版本号之间的多个空格统一替换成单个空格,同时确保能正确匹配到版本号内容,下面分场景给你具体方案:
一、通用查找替换方案(适用于编辑器、脚本等)
我们可以用捕获组来保留版本标识和版本号,把中间的多空格替换成单个空格:
查找正则
(App Version|Version) +(.*?\d$)
替换模板
$1 $2
正则说明
(App Version|Version):捕获两种版本标识的任意一种,后续用来保留原标识+:匹配一个或多个连续空格(如果需要兼容制表符等空白符,可换成\s+)(.*?\d$):捕获从空格后到末尾数字的版本号内容,.*?是非贪婪匹配,避免误匹配多余内容
示例效果
原内容:
App Version 1.1.0.11
替换后:App Version 1.1.0.11
原内容:
Version 2.0
替换后:Version 2.0
二、Python代码实现示例
如果是在代码里处理文本,用re.sub就能轻松搞定:
import re # 示例文本 raw_texts = [ "App Version 1.1.0.11", "Version 2.0", "App Version 3.5.2-beta1" # 兼容带字母的版本号(只需调整正则即可) ] # 处理函数 def fix_version_spacing(text): # 若要兼容字母结尾的版本号,把正则改成 r'(App Version|Version) +(.*?\w$)' return re.sub(r'(App Version|Version) +(.*?\d$)', r'\1 \2', text) # 批量处理并输出 for text in raw_texts: print(fix_version_spacing(text))
运行后输出:
App Version 1.1.0.11 Version 2.0 App Version 3.5.2-beta1 # 注:修改正则后会变成「App Version 3.5.2-beta1」
三、编辑器(如VS Code)操作步骤
- 打开查找替换面板(快捷键
Ctrl+F/Cmd+F,然后点击.*开启正则模式) - 查找框输入:
(App Version|Version) +(.*?\d$) - 替换框输入:
$1 $2 - 点击「替换全部」即可批量修正所有符合规则的内容
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

