【发布时间】:2019-12-02 15:16:59
【问题描述】:
我正在从 PAN 卡中检索 PAN 号码。当我刮盘号时,有时它在几个数字之间有一些空格,例如DWKP K3344E,其中实际的PAN号表达式为ABCDE1234F。我想在正则表达式中的 scraped 数字上考虑空格。
import re
if re.search(r'^([a-z?A-Z?0-9]){5}([a-z?A-Z?0-9]){4}([a-z?A-Z?0-9]){1}?$', 'DWKP K3344E'):
print("True")
else:
print("False")
上述内容的正则表达式代码也应该返回 true。为此,只需修改代码中的r'^([a-z?A-Z?0-9]){5}([a-z?A-Z?0-9]){4}([a-z?A-Z?0-9]){1}?$' 部分。
提前致谢。
【问题讨论】:
-
去掉空格,
if re.search(r'^[a-zA-Z0-9]{5}[0-9]{4}[a-zA-Z]$', re.sub(r'\s+', '', text)) -
谢谢。它有效
-
这是 PAN 的
recommended structure,根据维基百科参见正则表达式here,为了匹配您的用例,使用非捕获组捕获空白,参见正则表达式here。
标签: python regex python-3.x