【发布时间】:2012-05-13 09:07:14
【问题描述】:
在正则表达式中,| 用于交替。 Lua模式中对应的字符是什么?
【问题讨论】:
标签: lua lua-patterns
在正则表达式中,| 用于交替。 Lua模式中对应的字符是什么?
【问题讨论】:
标签: lua lua-patterns
首先,注意 Lua patterns 不是正则表达式;它们是它们自己更简单的匹配语言(具有不同的优点和缺点)。
根据我上面链接到的规范和this answer,Lua 模式中没有交替运算符。要获得此功能,您需要使用更强大的 Lua 构造(如 LPEG 或 Lua Regex Library)。
【讨论】:
if s:match(a) or s:match(b) then ...
local word = s:match("%w+") if word =="foo" or word == "bar" then.... else ....... end
Lua 没有您无法使用的模式的交替 (test1|test2)。您只能在多个字符之间进行选择,例如 [abcd] 将匹配 a、b、c 或 d。
【讨论】:
另一种解决方法是:而不是:
苹果|橙
写:
[ao][pr][pa][ln][eg]
说明:匹配每个单词的替代字母。瞧!
【讨论】:
arplg。