法国正则表达式邮政编码

French regex zipcode

我需要一个正则表达式来检查 PHP 中的法国邮政编码。

我有一个正则表达式:

/^(([\d]{2} )|(2[abAB] ))*(([\d]{2})|(2[abAB]))$/ 捕获 01 到 99 或 2a 或 2b
或者
^[0-9]{5}$ 捕获 01000 到 99000
或者
^(0[1-9]|[1-8]\d|9[0-5])\d{3}$ 捕获 01000 到 95999

实际上我需要这 3 个正则表达式的组合,
可以捕获01到95,或者01000到95000或者971到978或者984到989或者2A或者2a或者2B或者2b

有什么想法吗?
非常感谢

怎么样:

(?:0[1-9]|[13-8][0-9]|2[ab1-9]|9[0-5])(?:[0-9]{3})?|9[78][1-9](?:[0-9]{2})?

看看:https://fr.wikipedia.org/wiki/Code_postal_en_France

根据您的规格我认为:

^(?:(?:(?:0[1-9]|[1-8]\d|9[0-4])(?:\d{3})?)|97[1-8]|98[4-9]|‌​‌​2[abAB])$

将满足您的要求。您的正则表达式在范围和空格方面存在问题。

演示:https://regex101.com/r/wFnEDj/2/