Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 求反并将多个正则表达式语句组合成一个正则表达式_Regex - Fatal编程技术网

Regex 求反并将多个正则表达式语句组合成一个正则表达式

Regex 求反并将多个正则表达式语句组合成一个正则表达式,regex,Regex,我有这个正则表达式 我需要结合这个正则表达式来检查邮政编码格式是否正确 ^([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})$ 我遇到的问题是对第一个post代码进行否定-如果我试图用[^]正则表达式包装

我有这个正则表达式

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

^([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})$
我遇到的问题是对第一个post代码进行否定-如果我试图用[^]正则表达式包装它,它就会爆炸

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

更新:

我听从了@georg的建议,但在某个地方失败了


我感觉自己像个冠军

:


基本模式是^?!$valid$无效。需要考虑的另一件事是:第一个正则表达式只匹配大写字母,第二个正则表达式也匹配小写字母。你应该选择其中一个。你更喜欢哪一种?@georg似乎没有飞,我出了点问题-它在排除的邮政编码上匹配。@LIUFA:我没有足够的勇气调试它;但是你确定你还想要一个正则表达式吗?即使你让它在某一点上工作,它仍然是不可读和脆弱的。你有没有想过一个循序渐进的解决方案似乎很难实现?
^([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})$
^(?!((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})$
^(?!((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})$)