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
  • 電話番号を取得します。using string.sub('552234332344', 3)=>出力: 2234332344
于 2012-09-06T07:18:48.710 に答える