3

(\\.|.)次のように、正規表現を使用して文字をバックスラッシュでエスケープできる文字列をトラバースするための一般的なイディオムがあります。

alert( "some\\astring".replace(/(\\.|.)/g, "[$1]") )

それは JavaScript にあります。このコードは、文字列some\astringを に変更します[s][o][m][e][\a][s][t][r][i][n][g]

Lua パターンが OR 演算子をサポートしていないことはわかっているため、この正規表現を直接 Lua パターンに変換することはできません。

それでも、私は疑問に思っていました.Luaパターンを使用して、Luaでこれを行う(エスケープされた可能性のある文字をトラバースする)別の方法はありますか?

4

1 に答える 1

5

あなたが試すことができます

(\\?.)

と置き換えます[$1]

Regexr で参照してください。

?は 0 回または 1 回の出現に対するショートカット量指定子であるため、上記のパターンは前にある文字とオプションのバックスラッシュに一致します。が機能しない場合?(lua を知りません)、{0,1}代わりに試すことができます。それは同じの長いバージョンです。

于 2014-04-07T13:13:26.273 に答える