我很好奇为什么这不起作用,需要知道为什么/如何解决它; 我试图检测一些输入是否是一个问题,我很确定string.match是我需要的,但是:
print(string.match("how much wood?", "(how|who|what|where|why|when).*\\?"))
返回零.我很确定Lua的string.match使用正则表达式来查找字符串中的匹配项,因为我在成功之前使用了通配符(.),但也许我不了解所有的机制?Lua在字符串函数中是否需要特殊的分隔符?我在这里测试了我的正则表达式,所以如果Lua使用常规正则表达式,似乎上面的代码会返回"how much wood?"
.
你能不能告诉我我做错了什么,我的意思是什么,或者指出一个很好的参考,我可以获得有关Lua的字符串操作函数如何利用正则表达式的全面信息?
kap*_*pex 13
Lua不使用正则表达式.Lua使用的模式看似相似,但匹配不同的输入.
.*
也会消耗最后一个?
输入,因此它会失败\\?
.问号应排除在外.特殊字符被转义%
.
"how[^?]*%?"
Run Code Online (Sandbox Code Playgroud)
正如Omri Barel所说,没有替代运营商.您可能需要使用多个模式,一个用于句子开头的每个替代单词.或者您可以使用支持正则表达式的库.
归档时间: |
|
查看次数: |
7036 次 |
最近记录: |