首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >否定多个regex语句并将其合并为一个

否定多个regex语句并将其合并为一个
EN

Stack Overflow用户
提问于 2015-01-23 12:23:00
回答 1查看 42关注 0票数 0

我有一个匹配所有排除的英国邮政编码的判据

代码语言:javascript
复制
^((AB)([15][0-6]|[24][1-5]|[3][0-9])|(BT)([1][1-79]?|[2346][0-9]?|[5][1-8]?|[7][014-9]?|[8][0-2]?|[9][2-4]?)|(DD)([1][01]?|[2-9])|(DG)([1][0-46]?|[2-9])|(EH)([1234][0-9]?|[5][1-5]?|[6-8]|[9][59]?)|(FK)([1][0-9]?|[2][0-2]?|[3-9])|(GY)([1-9])|(G)([1][1-5]?|[2][0-3]?|[3][1-4]?|[4][0-6]?|[5][1-38]?|[67][0-9]|[8][0-4]|[9])|(HS)[1-9]|(IM)([1-7]|[8][6]?|[9][9]?)|(IV)([14][0-9]|[2][0-8]|[3][0-26]|[5][1-6]|[6-9])|(JE)[1-4]|(KA)([12][0-9]?|[3][0]?|[4-9])|(KW)([1][0-7]?|[2-9])|(KY)([1][0-6]?|[2-8]|[9][9]?)|(ML)([1][0-2]?|[2-9])|(PA)([1246][0-9]?|[37][0-8]?|[589])|(PH)([1][0-8]?|[2][6]?|[3][16]?|[4][249]?|[5-9])|(TD)([1][0-13-4]?|[2-9])|(ZE)[1-3])

我需要结合这个正则表达式来检查邮政编码格式是否正确。

代码语言:javascript
复制
^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) {0,1}[0-9][A-Za-z]{2})$

我遇到的问题是用第一个邮政编码进行否定--如果我试图用[^()] regex来包装它的话

,我将如何否定第一条,并将第二条与第二条合并为一个正则表达式?

更新:

我听从了乔治的建议,在某个地方失败了。

它与排除的代码匹配。

代码语言:javascript
复制
^(?!((AB|ab)([15][0-6]|[24][1-5]|[3][0-9])|(BT|bt)([1][1-79]?|[2346][0-9]?|[5][1-8]?|[7][014-9]?|[8][0-2]?|[9][2-4]?)|(DD|dd)([1][01]?|[2-9])|(DG|dg)([1][0-46]?|[2-9])|(EH|eh)([1234][0-9]?|[5][1-5]?|[6-8]|[9][59]?)|(FK|fk)([1][0-9]?|[2][0-2]?|[3-9])|(GY|gy)([1-9])|(G|g)([1][1-5]?|[2][0-3]?|[3][1-4]?|[4][0-6]?|[5][1-38]?|[67][0-9]|[8][0-4]|[9])|(HS|hs)[1-9]|(IM|im)([1-7]|[8][6]?|[9][9]?)|(IV|iv)([14][0-9]|[2][0-8]|[3][0-26]|[5][1-6]|[6-9])|(JE|je)[1-4]|(KA|ka)([12][0-9]?|[3][0]?|[4-9])|(KW|kw)([1][0-7]?|[2-9])|(KY|ky)([1][0-6]?|[2-8]|[9][9]?)|(ML|ml)([1][0-2]?|[2-9])|(PA|pa)([1246][0-9]?|[37][0-8]?|[589])|(PH|ph)([1][0-8]?|[2][6]?|[3][16]?|[4][249]?|[5-9])|(TD|td)([1][0-13-4]?|[2-9])|(ZE|ze)[1-3]) {0,1}[0-9][A-Za-z]{2}$)([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) {0,1}[0-9][A-Za-z]{2})$
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-23 14:10:05

我觉得自己是个冠军!

这样就行了

代码语言:javascript
复制
^(?!((AB|ab)([15][0-6]|[24][1-5]|[3][0-9])|(BT|bt)([1][1-79]?|[2346][0-9]?|[5][1-8]?|[7][014-9]?|[8][0-2]?|[9][2-4]?)|(DD|dd)([1][01]?|[2-9])|(DG|dg)([1][0-46]?|[2-9])|(EH|eh)([1234][0-9]?|[5][1-5]?|[6-8]|[9][59]?)|(FK|fk)([1][0-9]?|[2][0-2]?|[3-9])|(GY|gy)([1-9])|(G|g)([1][1-5]?|[2][0-3]?|[3][1-4]?|[4][0-6]?|[5][1-38]?|[67][0-9]|[8][0-4]|[9])|(HS|hs)[1-9]|(IM|im)([1-7]|[8][6]?|[9][9]?)|(IV|iv)([14][0-9]|[2][0-8]|[3][0-26]|[5][1-6]|[6-9])|(JE|je)[1-4]|(KA|ka)([12][0-9]?|[3][0]?|[4-9])|(KW|kw)([1][0-7]?|[2-9])|(KY|ky)([1][0-6]?|[2-8]|[9][9]?)|(ML|ml)([1][0-2]?|[2-9])|(PA|pa)([1246][0-9]?|[37][0-8]?|[589])|(PH|ph)([1][0-8]?|[2][6]?|[3][16]?|[4][249]?|[5-9])|(TD|td)([1][0-13-4]?|[2-9])|(ZE|ze)[1-3]))^(([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) {0,1}[0-9][A-Za-z]{2})$)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28109835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档