gpt4 book ai didi

regex - 正则表达式仅适用于英国邮政编码

转载 作者:行者123 更新时间:2023-12-04 16:29:44 25 4
gpt4 key购买 nike

我有一个Asp.Net网站,我想使用RegularExpressionValidator来检查英国邮政编码是否为英语(即不是苏格兰,威尔士或爱尔兰)。

仅使用第一个段的字母(称为邮政编码区域),就应该可以查看邮政编码是否为英语。总共有124个邮政编码区域,并且this 是它们的列表。

从该列表中,以下邮政编码区域不在英格兰。

  • ZE,KW,IV,HS,PH,AB,DD,PA,FK,G,KY,KA,DG,TD,EH,ML(苏格兰)
  • LL,SY,LD,HR,NP,CF,SA(威尔士)
  • BT(爱尔兰北部)

  • 正则表达式的输入可能是整个邮政编码,也可能只是邮政编码区域。

    谁能帮助我创建仅在给定邮政编码为英语的情况下才匹配的正则表达式?

    编辑-解决方案

    在几位发帖人的帮助下,我能够创建以下正则表达式,我已针对1500多个测试用例成功进行了测试。

    ^(AL|B|B[ABDHLNRS]|C[ABHMORTVW]|D[AEHLNTY]|E|E[CNX]|FY|G[LUY]|H[ADGPUX]|I[GM‌​P]‌​ |JE|KT|L|L[AENSU]|M|ME|N|N[EGNRW]|O[LX]|P[ELOR]|R[GHM]|S|S[EGKLMNOPRSTW]|T[AFNQ‌​‌​ RSW]|UB|W|W[ACDFNRSV]|YO)\d{1,2}\s?(\d[\w]{2})?

    最佳答案

    There are 124 Postcode Areas in the UK.



    - PAF® statistics August 2012,通过 List of postcodes in the United Kingdom (Wikipedia)

    我建议将您的问题分为两部分(考虑 函数):
  • 邮政编码有效吗?

    UK Postcode Regex (Comprehensive)
  • 邮政编码是英文吗?

    这可以进一步分割:
  • 不是苏格兰语:
  • ! /^(ZE|KW|IV|HS|PH|AB|DD|PA|FK|G|KY|KA|DG|TD|EH|ML)[0-9]/
  • 不是威尔士语:
  • ! /^(LL|SY|LD|HR|NP|CF|SA)[0-9]/
  • 不是北爱尔兰人,马恩岛,来自海峡群岛,...
  • 等...
  • ,或者您可以检查邮政编码区域是否在一百个左右的英语区域中,具体取决于您想如何优化☻

  • 请注意,语法会根据您的编程语言而有所不同。
    以一个正则表达式执行所有这些操作很快将变得难以管理。

    关于regex - 正则表达式仅适用于英国邮政编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9608222/

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