改进正则表达式以匹配有效值

Improve Regex for match valid values

本文关键字:有效值 正则表达式      更新时间:2023-09-26

我需要一些帮助来构建这三个正则表达式,因为我缺少一些东西并且某些值不匹配。

  • 这里首先测试]: ^(?:(?:00|'+)58|0)(?:2(?:12|4[0-9]|5[1-9]|6[0-9]|7[0-8]|8[1-35-8]|9[1-5]|3[45789]))'d{7}$

    输入(有效值模式): 02121234567, +582121234567, 2121234567, (212)123.41.25

    , (212)-123.41.25输入(无效值模式):(9212)123.41.25、(21200)-123.41.25

    在这种情况下,我制作的正则表达式构建适用于以下模式:02121234567、+582121234567,但不适用于其余模式

    • 第二次测试在这里]: ^(?:(?:00|'+)58)(?:4(?:1[246]|2[46]))'d{7}$
    输入(有效值模式): 04241234567, +584241234567, 4241234567, (424)123.41.25, 04141234567, +584141234567, 4141234567, (414)123.41.25,

    04121234567, +584121234567, 4121234567, (412)123.41.25输入(无效值模式):(123)123.41.25、(4246)123.41.25

    在这种情况下,我制作的正则表达式构建适用于以下模式:+584241234567但不适用于其余模式

    • 第三: ^'+?(?:'('d{1,4}')|'d{1,4})?'s*['d's.]{6,14}$

    输入(有效值模式): +584242511330, 00584242511330, 4242511330, (424)251.13.30输入(无效值模式):123 456 213、+12 345 678、+48 315 182 12 63、(4567)8457435

    在这种情况下,我制作的正则表达式构建可以工作,但也允许无效的模式

我可以在这里得到一些帮助吗?

对于第一个的开始:

^(?:(?:(?:00|'+)58|0)?(?:2(?:12|4[0-9]|5[1-9]|6[0-9]|7[0-8]|8[1-35-8]|9[1-5]|3[45789]))'d{7})|(?:'(212')-?'d{3}'.'d{2}'.'d{2})$

正则表达式101

。对于第二个:

^(?:(?:(?:00|'+)58)(?:4(?:1[246]|2[46]))'d{7})|(?:0?'d{10})|(?:'(4(?:[12]4|12)')'d{3}'.'d{2}'.'d{2})$

正则表达式101

对于最后一个,需要更多的输入,如何区分有效值和无效值。
正则表达式101