我正在使用正则表达式在用户的给定输入中查找车牌,
numberPlate = input("Enter the Number plate of the car, eg LV04 HNX, HR06PRK")
numberPlateRegEx = re.compile(r'\w\w\d\d( )?\w\w\w') # Creates a regular expression object, can be used to scan strings for anything matching the given pattern, \w is a letter, \d is (strictly, a number or letter), ( )? means there can be an optional space
numberPlateFound = re.findall(numberPlateRegEx, numberPlate)
当我输入包含车牌号的图案的输入时,numberPlateFound是一个single space inside of it:
的列表当我输入输入not including a car number plate inside:
时如果我想找到某些东西,但是如果我想要找到找到的模式,那么这是有效的吗?我会使用不同的方法吗?
编辑:我的问题是different from this suggested question,因为在我的例子中它不返回一个空字符串,而是一个里面有空格字符的字符串,我不知道为什么,我想知道为什么答案 0 :(得分:1)
一些事情:
\b
,您可能会比您尝试的更匹配。
\b
是一个单词边界。它匹配单词字符和非单词字符或行开始/结束之间的任何位置:(^\w|\w$|\W\w|\w\W)
而不消耗字符(零宽度断言)import re
r = re.compile(r"\b\w{2}\d{2} ?\w{3}\b")
s = "Enter the Number plate of the car, eg LV04 HNX, HR06PRK"
print(r.findall(s))