假设我有这四个字符串:
str1 = "license 123456"
str2 = "address 123456"
str3 = "license number 1234567"
str4 = "license num 1234"
我试图匹配所有的字符串,要么"permit"|"license"|"license number"|license num"
后跟正好6位数字。
我试过这个表达:
re.search(r"(permit|license|license number|license num)\d{6}$", str)
据我所知,它应该匹配我的标准,但它显然也匹配超过6位的字符串(它不匹配小于6位的字符串)。
如何修复正则表达式?
2条答案
按热度按时间mwngjboj1#
我想这可能行得通:
这取决于你如何搜索:
slmsl1lt2#
首先是“许可证”|“许可证号”|licenseNum”是逻辑冗余,并且可以收缩为“license”本身。
其次,您没有指定可以在我们的许可证和数字之间出现的字符模式。这可以通过.* 来完成,因此主模式变为“permit|许可证。*[0-9]{6}$”
因此可以看到如下的结束代码