我知道你不能在Lua重複比賽組。例如,如果我想匹配兩個連續"45"
的,我不能這樣做:可能匹配(看似)無效的Lua模式
print(string.find("some 4545 text", "(%d%d)+"))
,它將打印nil
(沒有找到匹配)。
然而,由於find(...)
不報告錯誤(無效的模式"%"
和"(%d"
錯誤被生產),它使我相信模式"(%d%d)+"
是一個有效的。
如果"(%d%d)+"
是一個有效的模式,它匹配的是什麼?如果不是,是否有特殊的原因不會產生錯誤?
啊哈,'+'只是成爲一個文字而不是元字符(這與我習慣的正則表達式/模式匹配引擎非常不同)。謝謝! –
我知道的其他正則表達式有這種模糊性:括號用於分組(有+有意義)和捕獲。在lua模式中,沒有分組,因此...但是,手冊可以更明確地陳述一下。 –