我有一个应用程序,它支持纯文本搜索和使用Lua模式的搜索。为了方便起见,该应用程序支持不区分大小写的搜索。这是一个图像片段:

将给定的Lua模式转换为不区分大小写的Lua模式的代码并不美观。它主要关心一个字符前面是否有奇数或偶数个转义(%),以及它是否位于方括号内。图像中显示的模式变为%a[bB][bB]%%[cC][%abB%%cC]
我还没有机会学习LPeg,我想这可能是我的动力。
我的问题是,这是否是LPeg可以轻松处理的事情?
发布于 2012-11-16 22:51:55
是的,但是要更容易地进入LPeg世界,可以考虑LPeg的"re“模块,它提供了一种类似正则表达式的语法,您可以在语法中指定一组规则(比如Yacc等)。您基本上可以为转义字符、括号组和常规字符编写规则。然后,您可以将函数关联到规则,这些规则将发出与它们使用的文本相同的文本或不区分大小写的修改版本。
您的规则的结构将自动处理奇偶区别、括号上下文等。LPeg使用“有序选择”,因此如果您首先添加转义规则,它将正确处理%[,并避免将其与括号规则混淆。
https://stackoverflow.com/questions/13404880
复制相似问题