针对英国邮政编码内特定部门的正确正则表达式模式



如何正确地只针对LA7、LA8、LA9、LA11、LA12、LA21、LA22、LA23、CA10、CA11和CA12 ?

我已经单独完成了这个模式,但我认为这不是最有效或正确的方法。

/^(LA[7-9A-Z]? ?d[0-9A-Z]{2}|LA[11-12A-Z]? ?d[0-9A-Z]{2}|LA[21-23A-Z]? ?d[0-9A-Z]{2}|CA[10-12A-Z]? ?d[0-9A-Z]{2})$/

如果目的是只将这些特定代码作为独立字符串匹配,则可以使用

^(?:LA(?:2[123]|1[12]|[789])|CA1[012])$

查看这个正则表达式演示。

要在较长的文本中匹配它们,您可以使用带有单词边界的正则表达式变体:

b(?:LA(?:2[123]|1[12]|[789])|CA1[012])b

细节:

  • ^-字符串起始
  • (?:LA(?:2[123]|1[12]|[789])|CA1[012])-两种选择之一:
    • LA(?:2[123]|1[12]|[789])-LA,然后2123,或者112,或者789
    • |-或
    • CA1[012]-CA1然后0,或1,或2
  • $- end of string.

最新更新