Python 正则表达式:匹配内部具有相同特殊字符的文本
我有多个文档需要与我们内部的一些代码匹配: 代码具有以下结构:CRL-LLL-LLL-LLL-LLL-DDDD |示例:CRL-SYW-CON-LKA-TMP-800001 主要有正确的案例,但也有这种情况的案例:CRL-SYW-CON-LKA-TMP-XXXXXX(因为他们不知道数字) 请看这个: 只是在Sublime文本中进行了测试,我使用以下方法得出了一些结果:.*-\d{6}但是它需要更多我不需要的部分: 这个想法可能是这样的:Python 正则表达式:匹配内部具有相同特殊字符的文本,python,regex,Python,Regex,我有多个文档需要与我们内部的一些代码匹配: 代码具有以下结构:CRL-LLL-LLL-LLL-LLL-DDDD |示例:CRL-SYW-CON-LKA-TMP-800001 主要有正确的案例,但也有这种情况的案例:CRL-SYW-CON-LKA-TMP-XXXXXX(因为他们不知道数字) 请看这个: 只是在Sublime文本中进行了测试,我使用以下方法得出了一些结果:.*-\d{6}但是它需要更多我不需要的部分: 这个想法可能是这样的: 读取并查找以CRL开头的所有字符串 停到下一个空间
- 读取并查找以CRL开头的所有字符串
- 停到下一个空间
- 返回至少包含2“-”的字符串
re.findall(r'\bCRL(?:-[A-Z]{3}){4}-(?:\d{6}|X{6})\b', text)
看
详情:
-单词边界\b
-一个CRL
字符串CRL
-四个重复的(?:-[A-Z]{3}){4}
和三个大写字母-
-连字符-
-六位数字或六个(?:\d{6}X{6})
字符X
-单词边界\b
\bCRL(?:-[a-Z]{3}{4}-(?:\d{6}X{6})\b
这太好了!这是一种创建范围的方法吗??像这样的东西对我很管用,但看起来很难看:\bCRL(?:-[A-Z]{3}{4}-(?:\d{6}}}\d{5}X{6}X{5}X{4}X{3})b.@jjsgana是的,(?:\d{5,6}X{3,6})
{5,6}
匹配五到六次,而{3,6}
匹配三到六次。这些是。另外,在regex101.com上测试regexp还有一个好处:如果你点击左边的代码生成器链接,你会看到一些。这太棒了。非常感谢你!嘿,威克托,我发现了这种情况:。在你给我的正则表达式代码中,有没有一种简单的方法可以抓取它们呢?哇,Wiktor的工作原理太棒了。谢谢你的帮助。你是regex mate上的机器。学习如何做到这一点需要几周的时间。我将在空闲时间学习更多的正则表达式。你的帮助是继续学习的巨大动力。