3
key="VALUE"
を含む行のVALUEを抽出したいので、これを解決するために単純なLuaパターンを使用しようとしています。Luaパターンのキャプチャグループは、キャプチャグループの代わりにリテラル数字文字と一致します
これは、VALUEにリテラル1
が含まれている行を除いた行に適用されます。パターンパーサがエスケープシーケンスのために私のキャプチャグループを混乱させるようです。
> return string.find('... key = "PHONE2" ...', 'key%s*=%s*(["\'])([^%1]-)%1')
5 18 " PHONE2
> return string.find('... key = "PHONE1" ...', 'key%s*=%s*(["\'])([^%1]-)%1')
nil
>
ありがとうございました。私はそれがセットにキャプチャグループを含めるように強制するために1をエスケープすることも同様に見つける。 '[^%\ 1]' あなたの解決策は理にかなっていて、よりクリーンです。私はそれを使用します。 – nolan
@nolanその場合、 '[^ \ 1]'を使いたいだけです。 '%'文字は必須ではありません。 – hjpotter92
確かにそうではありません。ありがとうございました。 – nolan