2012-05-03 13 views
3

正規表現では、|が交互に使用されます。ルアパターンの対応する文字は何ですか?Luaパターンの交代演算子とは何ですか?

+1

も参照してください[Lua string.matchは不規則な正規表現を使用しますか?](http://stackoverflow.com/questions/7138189/lua-string-match-uses-irregular-regular-expressions) – Phrogz

答えて

12

まず、Lua patternsは正規表現ではありません。彼らはより簡単で合った言語です(さまざまな利点と欠点を持っています)。

私が上記にリンクした仕様では、this answerごとに、Luaパターンに代替演算子はありません。この機能を利用するには、より強力なLua構造(LPEGLua Regex Libraryなど)を使用する必要があります。

+3

これを完全に補完しますLPEGやLua Regexを使用しないで逃げることができると言って答える - 普通のやり方では:「もし:(a)か(s)とマッチする(b)か...」 – kikito

+1

より一般的なマッチを取り除き、結果をスイッチすることもできます:word == "foo"またはword == "bar"なら 'local word = s:match("%w + ").... else ....... end' – daurnimator

+0

私はArduino Regexp(これはLuaパターンに基づいています)の観点からこの質問に来ました。私はこの答えが私が移植できる回避策を含むことを望んでいた。 –

0

別の回避策は次のとおりです。代わりに:

リンゴ|オレンジ

書き込み:

[AO] [PR] [PA] [LN] [例]

説明:各単語の代替文字と一致します。酔いどれ!

+0

これも 'arplg'にマッチします。 –