PAN卡上的Python正则表达式

2024-10-04 09:18:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从PAN卡上取PAN号码。当我刮削pan number时,有时它在几个数字之间有一些空格,比如DWKP K3344E,其中实际的pan number表达式是ABCDE1234F。我想考虑一下,在regex中废弃的数字上也有空格。你知道吗

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")

对于上述内容,regex代码也应该返回true。为了做到这一点,我们只需要修改代码中的r'^([a-z?A-Z?0-9]){5}([a-z?A-Z?0-9]){4}([a-z?A-Z?0-9]){1}?$'部分。你知道吗

提前谢谢。你知道吗


Tags: 代码renumber表达式数字regexpan号码
1条回答
网友
1楼 · 发布于 2024-10-04 09:18:30

我建议在使用regex检查字符串之前,先从字符串中删除空格(比如,使用re.sub(r'\s+', '', text)以确保所有Unicode空格都消失)。你知道吗

此外,regex在字符类中包含问号,因此这些字符在输入中是允许的。你必须移除它们。你知道吗

试试看

if re.search(r'^[a-zA-Z]{5}[0-9]{4}[a-zA-Z]$', re.sub(r'\s+', '', text)):
    # do something

这里,re.sub(r'\s+', '', text)首先从文本中删除所有可能的空白,然后^[a-zA-Z0-9]{5}[0-9]{4}[a-zA-Z]$确保结果匹配:

  • ^-字符串的开头
  • [a-zA-Z]{5}-五个字母
  • [0-9]{4}-四位数
  • [a-zA-Z]-一封信
  • $-字符串结尾。你知道吗

参见regex demo。你知道吗

相关问题 更多 >