我有以下用于验证北美邮政编码的正则表达式:
(?:(\d{5})(?:-\d{4})?)|(?:([a-zA-Z]\d[a-zA-Z]) ?(\d[a-zA-Z]\d))
仅供参考,我知道在验证某些位置的某些字符方面可能更准确。
我想做的是使用相同的验证常量来提取以下格式的邮政编码:
00000
or
a0a0a0
上面的正则表达式很接近;如果我连接所有捕获组(根除外),我会得到我想要的结果。例如,美国代码将在第 1 组中捕获,或者加拿大代码将在 2 + 3 中捕获。
有一个更好的方法吗?或者也许假设它是正则表达式库的一个特性,用于连接所有子组。(顺便说一下,这是 C# .NET)