面向对象正则表达式

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')

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

推荐PyPI第三方库


热门话题
由于测试失败,java testcontainers maven构建失败   java实现jacobi算法实现laplace方程   java中的多线程:如何在不等待所有线程使用ExecutorService完成任务的情况下终止所有线程的执行?   java Hello World不在Android Studio 3中工作   ubuntu Tomcat7的Java版本不正确   java Javafx内存泄漏   对于手动实现的Spring数据存储库方法,我应该使用Java8默认方法吗?   googleappengine中的java添加过滤查询   html当使用JSOUP库在Java中读取标签时,如何保留标签(如<br>、<ul>、<li>、<p>等)的含义?   编码为什么jasper生成的报告在Java中不显示西里尔语(保加利亚语)?   java有没有办法隐藏当前位置和jdk动作?   java找出编译原型文件的版本   有没有办法在运行时更改java方法的访问修饰符?   语法字符串。。。Java中的参数   java数组元素在添加其他元素时会相互覆盖   eclipse中的java GWT项目   java如何为spring rest模板请求将动态json属性名映射到jackson   java无法在Windows 10上找到特定的JDK   在xml字符串和java字符串之间提取正则表达式子字符串