伊朗邮政编码验证

时间:2018-02-10 10:36:57

标签: regex regular-language

请,我需要使用regex验证伊朗邮政编码。 我为这个案例\b([^02\n\D]){4}[^5](\d){5}编写了这个正则表达式,但它不适用于规则5和7。 请帮我解决。

这是关于这个正则表达式的一些规则:

  1. 全部数字

  2. 10位数

  3. 不要在前5位数中使用0

  4. 请勿在邮政编码中使用2

  5. 前4位数不一样

  6. 第5位数不能为5

  7. 所有数字都不相同

1 个答案:

答案 0 :(得分:7)

以下正则表达式满足您的条件:

\b(?!(\d)\1{3})[13-9]{4}[1346-9][013-9]{5}\b

Click for Demo

<强>解释

  • \b - 字边界
  • (?!(\d)\1{3}) - 负面预测,以确保前4位数字不相同。
  • [13-9]{4} - 匹配除02
  • 以外的所有数字的4次出现
  • [1346-9] - 匹配不是025
  • 的单个数字
  • [013-9]{5} - 匹配除2
  • 以外的所有数字的5次出现
  • \b - 字边界