代码之家  ›  专栏  ›  技术社区  ›  arinte

前面有可选数据的regex

  •  0
  • arinte  · 技术社区  · 16 年前

    我有一个像这样的瑞格鞋

    ((1010xxx)?(\d{11}|\d{10}|\d{7})+)  
    

    基本上我想要它匹配

    八十亿八千五百五十五万一千二百三十四
    5551234
    101023808551234

    它应该会失效
    一百零一万零二百三十三

    这更多是为了在XSD上进行验证,而不是实际的匹配器。

    PS。 我正在尝试将我们的电话号码7-11位长与前面的可选1010XX匹配。如果是1010xx,则不应通过。XXX是任意3位数字。

    1 回复  |  直到 16 年前
        1
  •  2
  •   Adam Bellaire    16 年前

    如果您只想确保它是一个7、10或11位的字符串,确保它只有7位,而不是以“1010”开头,则可以在匹配之前使用负先行断言。 \d{7} ,即:

    ((\d{11}|\d{10}|(?!1010)\d{7})+)