Regex 伊朗邮政编码验证

Regex 伊朗邮政编码验证,regex,regular-language,Regex,Regular Language,请,我需要使用regex验证伊朗邮政编码。 我为这种情况编写了这个正则表达式\b([^02\n\D]){4}[^5](\D){5},但它不适用于第5和第7条规则。 请帮我修一下 以下是有关此正则表达式的一些规则: 都是数字 10位计数 不要在前5位中使用0 不要在邮政编码中使用2 前4位数字不一样 第五位数字不能是5 所有的数字都不一样 以下正则表达式满足您的条件: \b(?!(\d)\1{3})[13-9]{4}[1346-9][013-9]{5}\b 说明: \b-单词边界 (?!(\

请,我需要使用
regex
验证伊朗邮政编码。 我为这种情况编写了这个正则表达式
\b([^02\n\D]){4}[^5](\D){5}
,但它不适用于第5和第7条规则。 请帮我修一下

以下是有关此正则表达式的一些规则:

  • 都是数字

  • 10位计数

  • 不要在前5位中使用0

  • 不要在邮政编码中使用2

  • 前4位数字不一样

  • 第五位数字不能是5

  • 所有的数字都不一样


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

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

    说明:

    • \b
      -单词边界
    • (?!(\d)\1{3})
      -负向前看以确保前4位数字不相同
    • [13-9]{4}
      -匹配除
      0
      2
    • [1346-9]
      -匹配不是
      0
      2
      5
    • [013-9]{5}
      -匹配除
      2
    • \b
      -单词边界

    堆栈溢出不是免费的正则表达式写入服务。请向我们展示您解决此问题的尝试。特别是添加一个,并用不匹配或不匹配的示例详细说明规则。这似乎不是RegEx的工作,allI真的很抱歉,但我读了一些关于伊朗邮政编码的文章,似乎
    0
    可以在第二个5位,但不能在前5位,我修理我的自行车question@MasOOd.KamYab我已经更新了解决方案。另外,请检查演示(?)(\d)\1{3})-负前瞻,以确保前3位数字不相同。@WonkotheSane解释时需要考虑不同类型的观众。我尽量给出一个详尽的答案,而不考虑它的复杂性,这样在评论部分就不会有太多的来来往往的交流了@古曼约辛格——我完全同意。我只知道,当我遇到有人为其编写了精心设计的正则表达式的代码时,我会暗自诅咒。:)