regex查找并匹配IF

regex查找并匹配IF,regex,python-2.7,regex-lookarounds,Regex,Python 2.7,Regex Lookarounds,我有点被困在试图找出如何让环顾工作为我在一个如果,否则类型的情况。当我尝试在上实现if-else习惯用法时,结果是出现了一个错误。以下是我所拥有的: MCV(1|0)(\d)(?<!1)\1[0-6]|[0-9] 不是这些 MCV197 MCV000 MCV876 因此,匹配出现的MCV,数字分量范围为1-196这里是您的正则表达式的细分: MCV(1|0)(\d)(?<!1)\1[0-6]|[0-9] 第1-196部分: 00[1-9]-如果我们以00开头,第三位数字不应该是

我有点被困在试图找出如何让环顾工作为我在一个如果,否则类型的情况。当我尝试在上实现if-else习惯用法时,结果是出现了一个错误。以下是我所拥有的:

MCV(1|0)(\d)(?<!1)\1[0-6]|[0-9]
不是这些

MCV197 MCV000 MCV876

因此,匹配出现的
MCV
,数字分量范围为1-196

这里是您的正则表达式的细分:

MCV(1|0)(\d)(?<!1)\1[0-6]|[0-9]
第1-196部分:

  • 00[1-9]
    -如果我们以
    00
    开头,第三位数字不应该是
    0
    ,也就是1到9
  • 0[1-9]\d
    -如果我们从
    0
    开始,第二个数字不是
    0
    ,那么第三个位置可以接受任何数字,也就是10到99
  • 1[0-8]\d
    -如果我们以
    1
    和第二个数字开始,第二个数字不是
    9
    ,那么第三个位置可以接受任何数字,即100到189
  • 19[0-6]
    -如果我们从
    19
    开始,那么第三位只能接受从
    0
    6
    的数字,即从190到196

  • 您可以使用此正则表达式:

    \bMVC(0*[1-9][0-9]?|1[0-8][0-9]|19[0-6])\b
    

    只需注意:
    (\d)(?=
    [02-9]
    (1 | 0)
    ([01])
    更有效。实际需求是什么?你能制定它们吗?更新了问题,让问题更清晰一点。我会使用。这更有意义(明确定义实例)而不是我想做的。谢谢你的解释!
    MVC(00[1-9]|0[1-9]\d|1[0-8]\d|19[0-6])
    
    \bMVC(0*[1-9][0-9]?|1[0-8][0-9]|19[0-6])\b