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,它没有unicode字符串的概念,并且假定 字符长度为一个字节,此库在完全 Unicode字符串(即^{TT12}$对象)。如果将字节对象传递给 这个库的行为是未定义的。
  • 许可

    与lua本身一样,这个库是在mit许可下发布的。

    欢迎加入QQ群-->: 979659372 Python中文网_新手群

    推荐PyPI第三方库


    热门话题
    java Android:应用程序崩溃发送putExtra的意图   JNI错误:尝试传递java实例。字符串作为参数   JavaJMockit与静态初始化   java@products@消费意义。。。JSON或者它只是一个字符串   java如何解决在命令提示符中找不到或加载主类错误?   java使用JavaMail API发送带有内联图像的电子邮件   java为什么我不能与Twitter共享内容   jspservlet正在显示java。木卫一。FileNotFoundException:?E:\guru99\test。txt(文件名、目录名或卷标语法不正确)   java如何在单击另一页上的按钮时向表视图添加数据?   java在提交表单数据之后,它显示了以下问题   java Spring启动通知/严重错误后重启   java从数组列表中删除元素   java Spring引导批处理:如何使用CompositeWriter和自定义ItemWriter实现多线程步骤   Spring java代码表单post和重定向到其他服务器