正则表达式求助:优化空格分隔数字间插入句号的规则
正则表达式修改需求
输入示例
原始文件名内容:
RP Distort2 1 0 0b.exe AFakeFilename4 5 0 2 SEP2 5 63 8 A4 5 8 7 6 COM99 6 4 4 1 TestSoftware v1 5 5
期望输出
转换后的目标内容:
RP Distort2 1.0.0b.exe AFakeFilename4 5.0.2 SEP2 5.63.8 A4 5.8.7.6 COM99 6.4.4.1 TestSoftware v1.5.5
当前问题
- 现有正则表达式:
(?<=\d) (?=\d),替换字符为. - 缺陷:会错误地在单词末尾数字与后续数字之间插入句号,例如将
RP Distort2 1 0 0b.exe转为RP Distort2.1.0.0b.exe,不符合预期 - 补充要求:若数字紧跟单个
v(如TestSoftware v1 5 5),需将空格替换为句号,得到TestSoftware v1.5.5
解决方案
利用工具支持的完整环视语法,修改正则表达式以精准匹配需要替换的空格位置:
查找正则:(?:(?<=\b\d) | (?<=v\d) )(?=\d)
替换字符:.
规则解释
(?<=\b\d):匹配位于单词边界+数字之后的空格,确保前面的数字是独立序列(比如1中的空格,而非Distort2中的空格,因为2属于单词的一部分,不满足单词边界条件)(?<=v\d):匹配位于v+数字之后的空格,专门处理v1 5这类带版本前缀的场景(?=\d):确保空格后方是数字,避免误替换其他位置的空格
内容的提问来源于stack exchange,提问作者fmotion1
相关产品推荐
相关产品推荐

