Python正则表达式提取Jira组件特定格式值的技术问询
提取Jira组件中特定格式版本号的正则方案
嘿,我来帮你搞定这个Jira组件的正则提取需求!针对你要的「小数点前后各一个字符/数字」的格式,同时排除附着其他字符的情况(比如9.4U1里的9.4、R、(U1)这类),我整理了几个实用的正则方案:
核心正则表达式
最通用的版本,能精准匹配独立的目标格式:
\b([a-zA-Z0-9]\.[a-zA-Z0-9])\b
正则拆解
\b:单词边界,确保匹配的目标前后都是非单词字符(比如空格、标点、字符串开头/结尾),完美避开像9.4U1这种后面跟着其他字符的伪匹配[a-zA-Z0-9]:匹配单个字母或数字,覆盖你需要的1.1、1.a、a.a、1.x所有合法格式\.:转义的小数点,匹配实际的点字符(直接写.会匹配任意字符,必须转义)():捕获组,方便直接提取你需要的目标值
更严格的版本(可选)
如果你的文本里有类似x.y-这种带后缀的情况,想要彻底排除,可以用这个要求匹配项前后必须是空白或字符串首尾的版本:
(?<!\S)([a-zA-Z0-9]\.[a-zA-Z0-9])(?!\S)
测试示例
拿你提供的示例文本测试:
PCN 9.4U1 (Act)----------------------------1.4 PCN 9.5 (Act)-------------
- 匹配结果:
1.4、9.5(9.4U1里的9.4因为后面跟着U1,会被\b排除,不会被匹配) - 如果文本里没有符合格式的内容,正则会返回空,完全符合你的需求
使用提示
在Jira里使用时,直接把这个正则填入对应的提取规则中,记得开启捕获组提取(大部分场景下Jira会自动识别捕获组的内容)。如果遇到引擎兼容问题,也可以用这个等价的写法:
(?:^|\s)([a-zA-Z0-9]\.[a-zA-Z0-9])(?:\s|$)
内容的提问来源于stack exchange,提问作者unknown
相关产品推荐
相关产品推荐

