正则表达式匹配字符串或空格或逗号的开头

时间:2016-02-02 12:51:34

标签: c# regex

我希望使用以下正则表达式匹配邮政编码:

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

我正在尝试解析HTML文档中的地址,因此我只想匹配以邮政编码开头的节点或包含以空格或逗号开头的邮政编码。否则会有太多误报,例如匹配颜色(以#开头)。

我需要修改正则表达式,以找到没有前面字符的邮政编码,或者在它之前的空格或逗号以及之前的任意数量的字符。我怎么能这样做?

例如,我想匹配:

IP14 2PL
1 The street, ipswich, IP14 2PL
1 The street, ipswich,IP14 2PL

但不是

https://t.co/ip142plzruc

1 个答案:

答案 0 :(得分:6)

只需在表达式前添加:

(?:^|[, ])

强制要求之前有空格或逗号或开始一行。