sre_yield 与正则表达式有关开源项目

我要开发同款
匿名用户2015年04月16日
91阅读

技术信息

开源地址
https://github.com/google/sre_yield
授权协议
Apache

作品详情

sre_yield是用于生成正则表达式匹配结果的Pytho模块,并尽可能的匹配到所有有效值。它采用了解析正则表达式的方式,所以你可以得到一个更加精确的结果,而不仅仅只是分散的字符串。

sre_yield通常都无法处理反向引用、lookarouds正则表达式,除此之外,还有在这几种情况下也无法处理;

重复的最大值取决于系统-CPytho的sre模块有一个特殊的值,该值被视为无限值(取决于构建,值为2**16-1或2**32-1)。在sre_yield中,将其视为文字,而不是无限,因此(在2**16-1平台上):

>>>le(sre_yield.AllStrigs('a*')[-1])65535>>>进口重>>>le(re.match('。*','a'*100000).group(0))100000

该re 模块的文档说,“正则表达式模式字符串可能不包含空字节”,然而这似乎做工精细。

Order 不取决于greediess。

正则表达式被视为完全匹配。

代码示例:

>>> import radom>>> v = sre_yield.AllStrigs('[abc]{1,4}')>>> le(v)120# Now radom.choice(v) has a 3/120 chace of choosig a sigle letter.>>> radom.seed(1)>>> sum([1 if le(radom.choice(v)) == 1 else 0 for _ i rage(120)])3# xeger(v) has ~25% chace of choosig a sigle letter, because the legthad match are chose idepedetly.> from rstr import xeger> sum([1 if le(xeger('[abc]{1,4}')) == 1 else 0 for _ i rage(120)])26

功能介绍

sre_yield 是用于生成正则表达式匹配结果的 Python 模块,并尽可能的匹配到所有有效值。它采用了解析正则表达式的方式,所以你可以得到一个更加精确的结果,而不仅仅只是分散的字符串。 s...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论