lua风格模式匹配的python实现
luapatt的Python项目详细描述
python 3.3+实现Lua language’s模式匹配 功能。lua的模式匹配比正则表达式简单 并且缺少regex所具有的一些特性,比如|for 交替,但也包含一些难以或不可能 在大多数正则表达式口味中重复,例如能够轻松匹配 平衡的一对圆括号(或任意两个其他字符)。
安装
pip install luapatt
文档
有关模式匹配如何工作的文档,请阅读Lua reference manual。此库包含以下与 库存lua:
- %c、%g、%p及其否定的对应项不是 可用;尝试使用它们将提升内置 NotImplementedError。
- 其他依赖于字符调用含义的字符类 python的str.is*方法家族,因此使用unicode 这个意义的定义。
- 字符串位置是基于零而不是基于一,这反映了 python通常是基于零的(与lua相反,lua 有一个基于索引)。这会影响位置捕捉和 索引作为来自find()的前两个结果返回。
- 函数返回值组合成一个元组,这是 Python。但是,不会返回单元组;单值 而是直接返回。
- gsub()默认情况下,不返回替换的数目, 而是只返回新字符串。数数,通过 调用的命名参数count=True(这将导致 新字符串的2元组和计数)。
- 提供了一个额外的函数set_escape_char(),用于更改 转义字符。它需要一个参数:新的转义字符, 它必须是长度为1的str对象。转义符 不能设置为任何其他特殊字符。当它是 可以将其设置为字母或数字,建议不要将其设置为 它可能会干扰模式匹配的其他方面,并且这样做 以后可能会被禁止。
- 注意:因为set_escape_char修改全局状态,所以 不线程安全。
许可
与lua本身一样,这个库是在mit许可下发布的。