伊朗邮政编码验证

Mas*_*Yab 6 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. 所有数字都不一样

Pot*_*toツ 8

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

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

单击"演示"

说明:

  • \b - 一个单词边界
  • (?!(\d)\1{3}) - 负向前瞻以确保前4位数字不相同.
  • [13-9]{4}- 匹配除了0和之外的所有数字的4次出现2
  • [1346-9]- 匹配不是a的单个数字0,25
  • [013-9]{5} - 匹配所有数字的5次出现,除外 2
  • \b - 一个单词边界