gpt4 book ai didi

PAN 卡上的 Python 正则表达式

转载 作者:行者123 更新时间:2023-12-01 00:43:18 28 4
gpt4 key购买 nike

我正在从 PAN 卡中检索 PAN 号码。当我抓取 pan 编号时,有时它在几个数字之间有一些空格,例如 DWKP K3344E,其中实际的 PAN 编号表达式为 ABCDE1234F。我想在正则表达式中的抓取数字中也考虑空格。

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}?$' 代码部分。

提前致谢。

最佳答案

我建议先从字符串中删除空格(例如,使用 re.sub(r'\s+', '', text) 以确保所有 Unicode 空格都消失),然后再使用正则表达式。

此外,您的正则表达式在字符类中包含问号,因此输入中允许这些字符。您必须删除它们。

尝试

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 .

关于PAN 卡上的 Python 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57183414/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com