我一直在尝试构建一个正则表达式来匹配python中的法语zipcodes。你知道吗
法语zipcode由部门代码(从01到95)和一个3位数的子区域(比如000到999)组成。你知道吗
我在试这个:0[1-9][0-9]{3}$|[1-8][0-9]{4}$|9[0-5][0-9]{3}$
我把问题一分为三
01xxx到09xxx,然后1xxx到8xxx,然后90xxx到95xxx
有什么好办法吗?你知道吗
编辑:
(0[1-9][0-9]{3}$)|([1-8][0-9]{4}$)|(9[0-5][0-9]{3}$):仅当我输入的数字只有5位时才匹配。你知道吗
我的最终版本是: ^((0[1-9]{1})|([1-8]{1}[0-9]{1})|9[0-5]{1})[0-9]{3}$ 这个“分解”了[0,9]{3}端部。你知道吗
您也可以使用类似
\d{5}
的正则表达式来首先匹配00000到100000首先匹配所有内容,然后通过检查字符串作为整数是否在1000和96000之间来验证每个匹配。你知道吗
首先,我认为你的例子中有一些拼写错误。
(代替
[1,9]
可能应该是[1-9]
)除此之外,唯一(微小)的改进是不重复结束模式。你知道吗
您可以(/应该/必须)在the official list of french postal codes上测试正则表达式。你知道吗
相关问题 更多 >
编程相关推荐