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如何使用bouncycastle从pkcs7文件获取证书?   java是向字符串数字添加零的有效方法吗?   Android在外部播放器中播放视频url   如何在Java代码中调用Wildfly事务管理器?   java为什么在使用键盘完成选择时不触发选择事件?   java xpath错误:jaxb外部绑定文件上为null   java如何避免在活动之间切换时出现白屏   Hadoop安装程序中的java“unknown.prolexic.com:未知错误”   要用作out参数的java自定义数字类   java如何向spring控制器的http请求添加属性?   for循环中的java静态值   java为图像编辑器快速、可靠地保存/加载文档状态   java数组越界和空指针异常   java如何在列表<Object>对象包含对象的对象上检查null?   java从URL下载文件到tomcat服务器   GlassFish“ogs3.1.2.2windows.exe”和“ogs3.1.2.2windowsml.exe”文件之间的java差异   无MathLab的Java Gabor图像处理   包含CSV中不存在的其他字段的java mongoimport