我目前想要编写一个与我自己的邮政编码不匹配的正则表达式。我认为我可以用负面的前瞻等方式做到这一点,但这些只是在找到任何邮政编码后(包括我自己的!)。我也希望这可以在一个短语中,而不需要任何额外的代码(无论是JS,Python等)。
这是我目前所拥有的(改变后的邮政编码,并没有完成所需的工作):
(?=(my postcode regex)(?!SW1 1AA))
假设我的邮政编码是SW1 1AA,我希望得到以下结果:
We need to go to EC2 2BB from SW1 1AA. <---MATCH
We need to go to EC2 2BB soon. <---MATCH
We need to go back to SW1 1AA soon. <---NO MATCH
有人可以建议,因为我现在有点难过,因为我也看到了使用底片!和^也是。提前谢谢!
答案 0 :(得分:0)
您没有指定编程语言或REGEX引擎,但这里有一种使用PCRE正则表达式引擎的方法。
使用否定预测来检查您当前的邮政编码。
((?!SW1 1AA)(my postcode regex))
这是我为验证正则表达式而制作的简单邮政编码正则表达式。
((?!SW1 1AA)([A-Z\d]{3}\s[A-Z\d]{3}))
We need to go to EC2 2BB from SW1 1AA. <---MATCHES EC2 2BB, but will not match SW1 1AA.
We need to go to EC2 2BB soon. <---MATCHES EC2 2BB
We need to go back to SW1 1AA soon. <---NO MATCHES
答案 1 :(得分:0)
[A-Z0-9]{3} [A-Z0-9]{3}
,此正则表达式适用于我的所有测试用例:
([A-Z0-9]{3} [A-Z0-9]{3})(?<!SW1 1AA)
您可以尝试here