将给定的正则表达式转换为详细格式以使用可用于在 asp.net 中验证英国邮政编码的格式?
Convert the given regular expression in veribose format to use a format usable to validate UK postcode in asp.net?
我有正则表达式我需要使用这个正则表达式来验证英国邮政编码。我已将其转换为可与 asp.net 正则表达式引擎一起使用的格式。任何人都可以指导我我所做的是正确的还是其中有任何错误。任何帮助都将 appreciated.These 邮政编码 returns 作为验证邮政编码 W1A 0AX、SO10 9AA、FY9 9AA、WC1A 9AA。
详细格式
(GIR\s0AA) |
(
# A9 or A99 prefix
( ([A-PR-UWYZ][0-9][0-9]?) |
# AA99 prefix with some excluded areas
(([A-PR-UWYZ][A-HK-Y][0-9](?<!(BR|FY|HA|HD|HG|HR|HS|HX|JE|LD|SM|SR|WC|WN|ZE)[0-9])[0-9]) |
# AA9 prefix with some excluded areas
([A-PR-UWYZ][A-HK-Y](?<!AB|LL|SO)[0-9]) |
# WC1A prefix
(WC[0-9][A-Z]) |
(
# A9A prefix
([A-PR-UWYZ][0-9][A-HJKPSTUW]) |
# AA9A prefix
([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY])
)
)
)
# 9AA suffix
\s[0-9][ABD-HJLNP-UW-Z]{2}
)
我用来验证邮政编码的格式如下
return (
Regex.IsMatch(postcode, "([GIR[ ]0AA])") ||
Regex.IsMatch(postcode, "(^[A-PR-UWYZ][0-9][0-9]?[ ][0-9][ABD-HJLNP-UW-Z]{2}$)") ||
Regex.IsMatch(postcode, "(^[A-PR-UWYZ][A-HK-Y][0-9](?<!(BR|FY|HA|HD|HG|HR|HS|HX|JE|LD|SM|SR|WC|WN|ZE)[0-9])[0-9][ ][0-9][ABD-HJLNP-UW-Z]{2}$)") ||
Regex.IsMatch(postcode, "(^[[A-PR-UWYZ][A-HK-Y](?<!AB|LL|SO)[0-9][ ][0-9][ABD-HJLNP-UW-Z]{2}$)") ||
Regex.IsMatch(postcode, "(^WC[0-9][A-Z][ ][0-9][ABD-HJLNP-UW-Z]{2}$)") ||
Regex.IsMatch(postcode, "(^[A-PR-UWYZ][0-9][A-HJKPSTUW][ ][0-9][ABD-HJLNP-UW-Z]{2}$)") ||
Regex.IsMatch(postcode, "(^[A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY][ ][0-9][ABD-HJLNP-UW-Z]{2}$)")
);
}
您可以使用
(GIR\s0AA)|((([A-PR-UWYZ][0-9][0-9]?)|(([A-PR-UWYZ][A-HK-Y][0-9](?<!(BR|FY|HA|HD|HG|HR|HS|HX|JE|LD|SM|SR|WC|WN|ZE)[0-9])[0-9])|([A-PR-UWYZ][A-HK-Y](?<!AB|LL|SO)[0-9])|(WC[0-9][A-Z])|(([A-PR-UWYZ][0-9][A-HJKPSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY]))))\s[0-9][ABD-HJLNP-UW-Z]{2})
我有正则表达式我需要使用这个正则表达式来验证英国邮政编码。我已将其转换为可与 asp.net 正则表达式引擎一起使用的格式。任何人都可以指导我我所做的是正确的还是其中有任何错误。任何帮助都将 appreciated.These 邮政编码 returns 作为验证邮政编码 W1A 0AX、SO10 9AA、FY9 9AA、WC1A 9AA。
详细格式
(GIR\s0AA) |
(
# A9 or A99 prefix
( ([A-PR-UWYZ][0-9][0-9]?) |
# AA99 prefix with some excluded areas
(([A-PR-UWYZ][A-HK-Y][0-9](?<!(BR|FY|HA|HD|HG|HR|HS|HX|JE|LD|SM|SR|WC|WN|ZE)[0-9])[0-9]) |
# AA9 prefix with some excluded areas
([A-PR-UWYZ][A-HK-Y](?<!AB|LL|SO)[0-9]) |
# WC1A prefix
(WC[0-9][A-Z]) |
(
# A9A prefix
([A-PR-UWYZ][0-9][A-HJKPSTUW]) |
# AA9A prefix
([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY])
)
)
)
# 9AA suffix
\s[0-9][ABD-HJLNP-UW-Z]{2}
)
我用来验证邮政编码的格式如下
return (
Regex.IsMatch(postcode, "([GIR[ ]0AA])") ||
Regex.IsMatch(postcode, "(^[A-PR-UWYZ][0-9][0-9]?[ ][0-9][ABD-HJLNP-UW-Z]{2}$)") ||
Regex.IsMatch(postcode, "(^[A-PR-UWYZ][A-HK-Y][0-9](?<!(BR|FY|HA|HD|HG|HR|HS|HX|JE|LD|SM|SR|WC|WN|ZE)[0-9])[0-9][ ][0-9][ABD-HJLNP-UW-Z]{2}$)") ||
Regex.IsMatch(postcode, "(^[[A-PR-UWYZ][A-HK-Y](?<!AB|LL|SO)[0-9][ ][0-9][ABD-HJLNP-UW-Z]{2}$)") ||
Regex.IsMatch(postcode, "(^WC[0-9][A-Z][ ][0-9][ABD-HJLNP-UW-Z]{2}$)") ||
Regex.IsMatch(postcode, "(^[A-PR-UWYZ][0-9][A-HJKPSTUW][ ][0-9][ABD-HJLNP-UW-Z]{2}$)") ||
Regex.IsMatch(postcode, "(^[A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY][ ][0-9][ABD-HJLNP-UW-Z]{2}$)")
);
}
您可以使用
(GIR\s0AA)|((([A-PR-UWYZ][0-9][0-9]?)|(([A-PR-UWYZ][A-HK-Y][0-9](?<!(BR|FY|HA|HD|HG|HR|HS|HX|JE|LD|SM|SR|WC|WN|ZE)[0-9])[0-9])|([A-PR-UWYZ][A-HK-Y](?<!AB|LL|SO)[0-9])|(WC[0-9][A-Z])|(([A-PR-UWYZ][0-9][A-HJKPSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY]))))\s[0-9][ABD-HJLNP-UW-Z]{2})