▽1
●
a-kuma3 ●100ポイント ベストアンサー |
色々調べた所、lua では | が使えない事までは分かりました。
string.find 、もしくは、string.match を使おうとしている、ということですよね?
http://www.rtpro.yamaha.co.jp/RT/docs/lua/tutorial/library.html#string.find
http://www.rtpro.yamaha.co.jp/RT/docs/lua/tutorial/library.html#string.match
文字列strの先頭から、パターンpatternに合致する部分を探します。
http://www.rtpro.yamaha.co.jp/RT/docs/lua/tutorial/library.html#pattern
パターンは、string.match関数などで文字列を検索するために使用されるものです。Lua独自のパターンと正規表現が利用できます。
正規表現は_RT_LUA_VERSIONが"1.03"以降のファームウェアで扱うことができます。
...
|の前後のパターンのいずれかに合致する文字列に合致します。
なんか、使えそうですけど。
思うに、パターンを正規表現ではなく、文字列で指定しているんじゃないでしょうか?
x = string.match("15.9S, 17.4W", /1(5\.9|6\.[0-2])S, 17\.[3-5]W/)
ピリオドだけ、¥でエスケープしてますが、質問に書いてある正規表現、ほぼそのままです。
ダブルクォートでくくるのではなく、スラッシュでくくると期待通りになるんじゃないかと思います。。
私は、プラグイン(ゲームクライアント内で使用するアプリ)の利用者です。
トリガーの項目に登録する文字列を書こうとしています。
こちらこそ、ごめんなさい。
プログラムを作るわけじゃなくて、設定画面に入力したい、ってことだったんですね。
ソースを読んでみたんですけど、文字列を使う方(Lua 独自の正規表現)しかできないんですね。
Ver 1.04 だと、Main.lua の 1934行目の
local captures=({string.match(string.lower(args.Message),string.lower(Alerts[tmpIndex][8]))});
で、判定しているようなのですけれど、以下のように書き換えれば、Lua 独自のではなく、普通の正規表現が使えるようになるはずです。
local regexp=string.regexp(Alerts[tmpIndex][8], "i"); local captures=({string.match(string.lower(args.Message), regexp)});
# 反則?