面向对象正则表达式
oore的Python项目详细描述
oore(面向对象正则表达式)是一个python库,它试图 在标准库之上提供一个面向对象的层。
这个项目背后的想法是让用户能够创建和组合 以编程方式表达。re模块或多或少比较简单 底层C库的包装器没有提供任何真正的接口 使这成为可能,这意味着特别复杂的正则表达式 需要通过连接字符串生成。
这意味着处理这样的代码是烦人的、困难的和容易出错的。
举个例子,下面是如何创建一个正则表达式 匹配aUnicode Language Identifier:
from oore import r digit = r(u'[0-9]') alpha = r(u'[A-Za-z') alphanum = r(u'[0-9A-Za-z]') unicode_variant_subtag = alphanum[5, 8] | (digit + alphanum[3]) unicode_region_subtag = alpha[2] | digit[3] unicode_script_subtag = alpha[4] unicode_language_subtag = alpha[2, 8] sep = r(u'[-_]') unicode_language_id = r(u'root') | ( unicode_language_subtag + (sep + unicode_script_subtag)[0, 1] + (sep + unicode_region_subtag)[0, 1] + (sep + unicode_variant_subtag)[0, ...] )
现在可以像re.regexobject一样使用它来获取re.matchobject 只需使用.match()方法:
match = unicode_language_id.match('de-DE')