Skip to main content
 首页 » 编程设计

c#之c# 中的正则表达式之英国邮政编码

2024年01月13日32bluestorm

我正在寻找 C# 中正则表达式问题的答案。我正在寻找特定邮政编码格式的匹配项,但遇到了问题。这是我正在检查的正则表达式模式:

([A-Z]{1})([0-9]{2})([0-9]{1})([A-Z]{2}) 

所以,这是在寻找一个字母,两个数字,一个数字,两个字母的格式。

当我在 RegexPlanet.com 上测试它时,它给了我一个匹配项,但是当我在 c# 中 checkin 时,它给出了一个不寻常的响应。虽然它在输入 A112BB 的测试邮政编码时有效,但当我输入 A112BBCCCC 时,它也带回了匹配项。任何人都知道为什么 c# 在找到匹配项后选择忽略最后一个字符?正如我所说,在 RegexPlanet.com 上的测试器中输入 A112BBCCCC 失败并表示不匹配。

谢谢

请您参考如下方法:

您可能会发现这很有用,它与英国邮政编码一样具体...

    static public bool IsPostCode (string postcode) 
    { 
    return ( 
        Regex.IsMatch(postcode, "(^[A-PR-UWYZa-pr-uwyz][0-9][ ]*[0-9][ABD-HJLNP-UW-Zabd-hjlnp-uw-z]{2}$)") || 
        Regex.IsMatch(postcode, "(^[A-PR-UWYZa-pr-uwyz][0-9][0-9][ ]*[0-9][ABD-HJLNP-UW-Zabd-hjlnp-uw-z]{2}$)") || 
        Regex.IsMatch(postcode, "(^[A-PR-UWYZa-pr-uwyz][A-HK-Ya-hk-y][0-9][ ]*[0-9][ABD-HJLNP-UW-Zabd-hjlnp-uw-z]{2}$)") || 
        Regex.IsMatch(postcode, "(^[A-PR-UWYZa-pr-uwyz][A-HK-Ya-hk-y][0-9][0-9][ ]*[0-9][ABD-HJLNP-UW-Zabd-hjlnp-uw-z]{2}$)") || 
        Regex.IsMatch(postcode, "(^[A-PR-UWYZa-pr-uwyz][0-9][A-HJKS-UWa-hjks-uw][ ]*[0-9][ABD-HJLNP-UW-Zabd-hjlnp-uw-z]{2}$)") || 
        Regex.IsMatch(postcode, "(^[A-PR-UWYZa-pr-uwyz][A-HK-Ya-hk-y][0-9][A-Za-z][ ]*[0-9][ABD-HJLNP-UW-Zabd-hjlnp-uw-z]{2}$)") || 
        Regex.IsMatch(postcode, "(^[Gg][Ii][Rr][]*0[Aa][Aa]$)") 
        ); 
    }