我有多个文档,需要匹配其中的一些代码:代码的结构如下:CRL-LLL-LLL-LLL-DDDDD|示例:CRL-SYW-CON-LKA-TMP-800001
主要有正确的情况,然而,这种情况也有一些情况:CRL-SYW-CON-LKA-TMP-XXXXXX(因为他们不知道数字(
请看这个:https://gyazo.com/c950b3f687929d19fc7b2cf63cc9721c
只是在Sublime文本中进行了测试,我使用以下方法想出了一些东西:.*-\d{6}但它需要更多我不需要的部分:
https://gyazo.com/e410a9267199f567b9d146ce9c3f1839
这个想法可能是这样的:
- 读取并查找所有以CRL开头的字符串
- 停止直到下一个空格
- 返回包含至少2"0"的字符串-">
谢谢!!
您可以使用
re.findall(r'bCRL(?:-[A-Z]{3}){4}-(?:d{6}|X{6})b', text)
请参阅regex演示。
详细信息:
b
-一个词的边界CRL
-CRL
字符串(?:-[A-Z]{3}){4}
--
和3个大写字母的四个重复-
-连字符(?:d{6}|X{6})
-六位数字或六个X
字符b
-一个词的边界