【发布时间】:2021-05-16 22:38:05
【问题描述】:
俄罗斯电话号码有 11 位数字,但我不能使用 a{11},因为电话号码可以包含括号和破折号
我的正则表达式:^([\+]?\d){1,2}([\(\-]*[0-9]{3}[\)\-]*)([0-9\-]{7,9})$
数字可以包含 1 到 2 个字符作为国家/地区代码
然后 3 位带括号的数字或不作为电话运营商代码
然后从 7-9 位带破折号或不带破折号
例如:
+7(994)849-45-16
+7(994)849-4516
+7(994)84945-16
+7994849-45-16
问题是,我如何计算正则表达式中数字的长度
【问题讨论】:
-
将
[0-9\-]{7,9}替换为[0-9](?:-?[0-9]){6,8}。国家代码部分必须是\+?\d{1,2} -
@WiktorStribiżew 它最多可以计算 14 位数字
-
要将总位数限制为 11,请在
^之后添加(?!(?:\D*\d){12})
标签: regex