Разница между использованием Split без параметров и опцией RemoveEmptyEntries

Похоже, мы собираемся использовать ^(GIR ?0AA|[A-PR-UWYZ]([0-9]{1,2}|([A-HK-Y][0-9]([0-9ABEHMNPRV-Y])?)|[0-9][A-HJKPS-UW]) ?[0-9][ABD-HJLNP-UW-Z]{2})$, который является слегка измененной версией, описанной Minglis выше.

Однако нам нужно будет выяснить, что именно правила, так как различные перечисленные выше решения, похоже, применяют разные правила относительно того, какие буквы разрешены.

После некоторого исследования мы нашли дополнительную информацию. По-видимому, страница на govtalk.gov.uk указывает на спецификацию почтового индекса govtalk-postcodes . Это указывает на схему XML в XML Schema , которая предоставляет утверждение «псевдорежима» правил почтового индекса.

Мы взяли это и немного поработали над этим следующее выражение:

^((GIR &0AA)|((([A-PR-UWYZ][A-HK-Y]?[0-9][0-9]?)|(([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRV-Y]))) &[0-9][ABD-HJLNP-UW-Z]{2}))$

Это делает пространство необязательным, но ограничивает вас одним пространством (замените '& amp;' на '{0,} для неограниченных пробелов). Предполагается, что весь текст должен быть в верхнем регистре.

Если вы хотите разрешить строчный регистр с любым количеством пробелов, используйте:

^(([gG][iI][rR] {0,}0[aA]{2})|((([a-pr-uwyzA-PR-UWYZ][a-hk-yA-HK-Y]?[0-9][0-9]?)|(([a-pr-uwyzA-PR-UWYZ][0-9][a-hjkstuwA-HJKSTUW])|([a-pr-uwyzA-PR-UWYZ][a-hk-yA-HK-Y][0-9][abehmnprv-yABEHMNPRV-Y]))) {0,}[0-9][abd-hjlnp-uw-zABD-HJLNP-UW-Z]{2}))$

Это не распространяется на заморские территории и только обеспечивает формат, а не существование разных областей. Он основан на следующих правилах:

Может принимать следующие форматы:

  • «GIR 0AA»
  • A9 9ZZ
  • A99 9ZZ
  • AB9 9ZZ
  • AB99 9ZZ
  • A9C 9ZZ
  • AD9E 9ZZ

Где:

  • 9 может быть любым однозначным номером.
  • A может быть любой буквой, кроме Q, V или X.
  • B может быть любая буква, кроме I, J или Z.
  • C может быть любой буквой, за исключением I, L, M, N, O, P, Q, R, V, X, Y или Z.
  • D может быть любой буквой, за исключением I, J или Z.
  • E может быть любым из A, B, E, H, M, N, P, R, V, W, X или Y.
  • Z может быть любой буквой, за исключением C, I, K, M, O или V.

С наилучшими пожеланиями

Колин

10
задан Dave Zych 10 January 2014 в 15:19
поделиться