检查字符串是否匹配特定模式

时间:2020-05-23 18:33:28

标签: python python-3.x

因此,我研究了牌照的文本识别。我为此使用了谷歌cloude服务。

它返回给我一系列可能的东西。但是,图像上不包含车牌的文本也会被识别。所以我以为我可以告诉python从列表中取一个与车牌图案匹配的文本。

对于德国来说,是这样的:

1或3个字母。 1个空白。1或2个字母。空格。最多4个数字。

所以我基本上有3个部分。在小情况下,可能是类似

H A 4

在最大的情况下

HHH AB 1234

希望清楚。谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

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

^[A-Z]{1,3}\s[A-Z]{1,2}\s\d{1,4}$

说明:

----------------------------------------------------------------------
  ^                        the beginning of the string
----------------------------------------------------------------------
  [A-Z]{1,2}               any character of: 'A' to 'Z' (between 1
                           and 2 times (matching the most amount
                           possible))
----------------------------------------------------------------------
  \s                       whitespace (\n, \r, \t, \f, and " ")
----------------------------------------------------------------------
  [A-Z]{1,2}               any character of: 'A' to 'Z' (between 1
                           and 2 times (matching the most amount
                           possible))
----------------------------------------------------------------------
  \s                       whitespace (\n, \r, \t, \f, and " ")
----------------------------------------------------------------------
  \d{1,4}                  digits (0-9) (between 1 and 4 times
                           (matching the most amount possible))
----------------------------------------------------------------------
  $                        before an optional \n, and the end of the
                           string

答案 1 :(得分:1)

这是一种方法:

import re
string='frg3453453HHH AB 1234e456 2sf 3245 yKDEH A 4 554YFDN'
print(re.findall('[A-Z]{1,3}\s[A-Z]{1,2}\s\d{1,4}',string))

输出:

['HHH AB 1234', 'DEH A 4']