/ / Konwertuj podane wyrażenie regularne w formacie veribose, aby użyć formatu używanego do sprawdzania kodu pocztowego w asp.net? - c #, asp.net, regex, kod pocztowy

Konwertuj podane wyrażenie regularne w formacie veribose, aby użyć formatu używanego do sprawdzania kodu pocztowego w serwisie asp.net? - c #, asp.net, regex, kod pocztowy

Mam regularną ekspresję, potrzebuję tego użyćwyrażenie regularne potwierdzające kod pocztowy w Wielkiej Brytanii. Przekonwertowałem to na format do pracy z silnikiem wyrażeń regularnych asp.net. Czy ktokolwiek mógłby mi wskazać, co zrobiłem, jest poprawny lub czy jest w tym jakikolwiek błąd. Każda pomoc zostanie doceniona. Te kody pocztowe zwracają się weryfikowalne kody pocztowe W1A 0AX, SO10 9AA, FY9 9AA, WC1A 9AA.

Format Veribose

(GIRs0AA) |
(
# 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}
)

format użyłem do sprawdzenia kodu pocztowego, jak poniżej

powrót (

    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}$)")

);
}

Odpowiedzi:

0 dla odpowiedzi № 1

Możesz użyć

(GIRs0AA)|((([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})

Zobacz regex demo