【发布时间】:2017-10-12 00:34:03
【问题描述】:
我的正则表达式在 Lua 中不起作用。我已经在我的文本编辑器和一些在线正则表达式工具等其他环境中对其进行了测试,它似乎在那里工作正常。
在其他环境中按我想要的方式工作的正则表达式:
RAY\.decrypt\s*\(([\"\'].+?(?=[\"\']).+?(?=[\)]))\s*\)
我试图在 Lua 中使用的正则表达式(只是 \'s 替换为 %'s)
RAY%.decrypt%s*%(([\"\'].+?(?=[\"\']).+?(?=[%)]))%s*%)
我尝试匹配的示例文本(我想捕获括号中的内容)
RAY.decrypt ("\x02\x02\x02\x02\x02\x02\x02\x02")
RAY.decrypt ("\xd6E\xd6E\xd6E\xd6E\xd6E")
RAY.decrypt("\x8e\x8e\x8e\x8e\x8e\x8e\x8e\x8e")
其他工具可以完美匹配文本并捕捉我想要捕捉的内容。但我正在努力让 Lua 做到这一点,因为它不匹配任何东西。
local s = [[RAY.decrypt ("\x02\x02\x02\x02\x02\x02\x02\x02")
RAY.decrypt ("\xd6E\xd6E\xd6E\xd6E\xd6E")
RAY.decrypt("\x8e\x8e\x8e\x8e\x8e\x8e\x8e\x8e")]]
print(string.find(s, "RAY%.decrypt%s*%(([\"\'].+?(?=[\"\']).+?(?=[%)]))%s*%)"))
> nil
任何帮助将不胜感激,谢谢!
【问题讨论】: