regex查找并匹配IF
我有点被困在试图找出如何让环顾工作为我在一个如果,否则类型的情况。当我尝试在上实现if-else习惯用法时,结果是出现了一个错误。以下是我所拥有的: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开头,第三位数字不应该是
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到90[1-9]\d
-如果我们从0
开始,第二个数字不是0
,那么第三个位置可以接受任何数字,也就是10到991[0-8]\d
-如果我们以1
和第二个数字开始,第二个数字不是9
,那么第三个位置可以接受任何数字,即100到18919[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