如何编写正则表达式匹配字符串与其他数字之间的纯数字内容
正则调整解决方案
你原有正则匹配结果带字母前缀的核心原因是捕获组(\S+)匹配了完整的非空白串,没有过滤非数字前缀,可根据场景选择以下调整方案:
场景1:前缀固定为FPS
直接用最简正则:
FPS(\d+)
提取捕获组1即可得到21098343。
场景2:需要保留你原有的前缀定位逻辑
调整后正则:
[0-9]{4}\s+[A-Za-z]*(\d+)
- 适配逻辑:保留你原本匹配末尾4位数字的定位规则,匹配完4位数字加后续空格后,先跳过所有字母前缀,仅将后续连续数字放入捕获组,提取捕获组1即可得到目标结果。
场景3:无需定位前缀,直接匹配纯字母后紧跟的连续数字
使用零宽断言正则,可直接命中目标无需额外提取捕获组:
(?<=\b[A-Za-z]+)\d+\b
- 匹配逻辑:正向回顾断言限定目标数字前是边界开头的纯字母串,在你提供的样例中可直接匹配到
21098343。
内容的提问来源于stack exchange,提问作者shAkur
相关产品推荐
相关产品推荐

