有没有任何Lua模式可以替代正则表达式(\\.|.)?

有一个通用的习语可以遍历一个字符串,其中的字符可能被反斜杠转义,使用正则表达式 (\\.|.),就像这样:

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

这是 JavaScript 的语法。这段代码将字符串 some\astring 更改为[s][o][m][e][\a][s][t][r][i][n][g]

我知道 Lua 模式不支持 OR 运算符,因此我们无法直接将此正则表达式转换为 Lua 模式。

但是,我在想:是否有另一种使用 Lua 模式的方法来遍历可能被转义的字符?

点赞
用户626273
用户626273

你可以尝试使用

(\\?.)

并且用[$1]替换它

Regexr上查看。

? 是一个快捷量词,表示0个或1个出现次数,所以上面的模式是匹配一个字符和一个可选的反斜杠。如果?不起作用(我不知道lua),您可以尝试改用{0,1}。 这是相同的长版本。

2014-04-07 13:13:26