1

我无法在 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”

谢谢!

4

2 回答 2

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 位数字,则指定%d10 次,然后添加%d?. %d是匹配任何数字的字符类,问号修饰符匹配前一个字符或字符类 0 或 1 次。

于 2012-09-06T08:00:13.013 回答
-1

尝试这个

^[0-9]{1,3}\s\|{2}\s[0-9]{10,11}$

这个表达式是1 || 9945397865像你问我猜的那样的模式。.

编辑:我想这行得通

  • string.len('552234332344')使用=>获取字符串长度输出: 12
  • string.match ('552234332344', ^%d)使用=>匹配字符串 输出: 552234332344 如果匹配
  • string.sub ('552234332344', 1, 2)使用=>获取国家/地区代码输出: 55
  • 取电话号码 使用string.sub('552234332344', 3)=>输出: 2234332344
于 2012-09-06T07:18:48.710 回答