我无法在Lua中制作具有以下要求的函数:
phone_number
和2位country_code
作为输入。phone_number
的格式为{1 || “”}} {country_code
} {10或11位手机号码} 我需要输出10或11位手机号码。
示例I / O:
phone_number
=“552234332344”,country_code
=“55”=> “2234332344”
phone_number
=“15522343323443”,country_code
=“55”=> “22343323443”
谢谢!
答案 0 :(得分:3)
试试"(1?)(%d%d)(%d+)"
。将此与您的示例一起使用:
print(("15522343323443"):match("(1?)(%d%d)(%d+)"))
print(("5522343323443"):match("(1?)(%d%d)(%d+)"))
将打印:
1 55 22343323443
55 22343323443
如果您需要电话号码中的10位或11位数字,请指定%d
10次,然后添加%d?
。 %d
是一个匹配任何数字的字符类,问号修饰符匹配前一个字符或字符类0或1次。
答案 1 :(得分:-1)
试试这个
^[0-9]{1,3}\s\|{2}\s[0-9]{10,11}$
这个表达式适用于{i} {{}}这样的模式,就像你猜的那样。
已编辑:我想这可行
1 || 9945397865
=>获取字符串长度输出: 12 string.len('552234332344')
=>匹配字符串输出: 552234332344如果匹配string.match ('552234332344', ^%d)
=>获取国家/地区代码输出: 55 string.sub ('552234332344', 1, 2)
=> 输出: 2234332344