3

Lua で一致グループを繰り返すことができないことはわかっています。たとえば、2 つの連続する を一致させたい場合"45"、次のことはできません。

print(string.find("some 4545 text", "(%d%d)+"))

印刷されますnil(一致が見つかりません)。

ただし、find(...)エラーは報告されないため (無効なパターン"%""(%d"エラーが生成されるため)、パターン"(%d%d)+" 有効なパターンであると信じるようになります。

"(%d%d)+"が有効なパターンである場合、それは何に一致しますか? そうでない場合、エラーが発生しない特別な理由はありますか?

4

2 に答える 2

5

"(%d%d)+"有効なパターンです。たとえば、「some 45+67 text」または「some 4567+ text」に一致し、最初のケースでは「45」をキャプチャし、2 番目のケースでは「67」をキャプチャします。

于 2012-06-19T10:35:33.413 に答える
1

数字の文字列が 2 回連続して出現する場合に一致させるには、 を使用します"(%d+)%1"

于 2012-06-19T10:41:25.237 に答える