加拿大邮政编码验证python regex

2024-09-25 02:24:30 发布

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

下面是我为加拿大邮政编码验证脚本编写的代码。它应该读入一个文件:

123 4th Street, Toronto, Ontario, M1A 1A1
12456 Pine Way, Montreal, Quebec H9Z 9Z9
56 Winding Way, Thunder Bay, Ontario, D56 4A3
34 Cliff Drive, Bishop's Falls, Newfoundland B7E 4T

并输出电话号码是否有效。当邮政编码1、2有效、3和4无效时,我的所有邮政编码都将作为无效返回。在

^{pr2}$

Tags: 文件代码脚本streetway邮政编码thundermontreal
2条回答

我不能保证我完全理解the format,但这似乎有效:

\b(?!.{0,7}[DFIOQU])[A-VXY]\d[A-Z][^-\w\d]\d[A-Z]\d\b

Demo

您也可以通过以下更改来修复(至少在示例中是这样):

^{pr2}$

(除了它接受连字符,这是禁止的)

Demo

但在这种情况下,明确的模式可能是最好的:

\b[ABCEGHJ-NPRSTVXY]\d[ABCEGHJ-NPRSTV-Z]\s\d[ABCEGHJ-NPRSTV-Z]\d\b

完成了其他步骤的1/4。在

Demo

此通用代码可以帮助您

import re
PIN = input("Enter your Address")
PIN1= PIN.upper()
if (len(re.findall(r'[A-Z]{1}[0-9]{1}[A-Z]{1}\s*[0-9]{1}[A-Z]{1}[0-9]{1}',PIN1)))==1:
print("valid")
    else:
        print("invalid")

因为我们从用户那里获取输入。因此,有很多机会,用户可以键入邮政编码没有空格,小写字母。所以这个代码可以帮助你 1) 间距不当 2) 小写字母

相关问题 更多 >