我有以下字符串的变体
i)ABC17/REV100/ABC17
ii)17ABC/REV100/ABC17
iii)ABC17/REV100/17ABC
iv)17ABC/REV100/17ABC
v)REV100/17ABC
vi)第100/17版
vii)17ABC/REV100
viii)17/REV100
ix)第100版
在所有这些情况下,三个字母REV是我想要提取的。如何设置正确的模式以匹配所有这些字符串中的三个字母
编辑:
它不必总是REV或ABC17,它可以是其他字母。规则是它始终位于示例字符串中REV所在的位置
例如,我的模式无法在所有字符串上匹配
'[0-9]?[A-Z]?.*?/?([A-Z]{3}.*?)','REV100/ABC17').group(1)
prints ABC
我如何正确地书写模式
您可以使用一个可选组来匹配1个或多个字符A-Z或数字0-9,因为它们的顺序不同,并且匹配正斜杠
然后使用捕获组捕获正斜杠后的前3个大写字母a-Z
^
字符串的开头(?:
非捕获组[A-Z0-9]+/
匹配列出的任何一个)?
关闭组并使其成为可选的([A-Z]{3})
捕获组1,匹配3个大写字符Regex demoPython demo
如果有以下3位数字:
比如说
输出
相关问题 更多 >
编程相关推荐