python pcre绑定

python-pcre的Python项目详细描述


python pcre
===


pcre regex引擎的python绑定。




Requirements
----

*[pcre](http://www.pcre.org)8.x
*[python](http://python.org)2.6+或3.x

使用python 2.6、2.7、3.4和pcre 8.12、8.30进行测试,8.35.



建筑和安装
--------


提供标准distutils"setup.py"脚本。
在确保安装了所有依赖项之后,构建
和安装应该简单到:

````
$python setup.py build install
````

构建PCRE时,必须启用UTF-8模式(`./configure--enable utf`)。您可能还希望启用无堆栈递归(`--disable stack for recursion`)和unicode字符属性(`--enable unicode properties`)。如果您计划使用jit,那么
添加"--启用jit"。



--------


api与内置的
[re模块(http://docs.python.org/library/re.html)非常相似。

不同的regex语法
*默认情况下,`sub()`,`subn()`,` expand()`use`str.format()`而不是`\1`替换
(见下文)
*`debug`和`locale`标志不受支持
*模式不被缓存
*扫描程序API不受支持

文档](http://php.net/manual/en/reference.pcre.pattern.syntax.php)。


` subn()`和'expand()`.

静态pyobject*\npy{1}(void\n{',str.format()模板
…'def myfunc():')
"静态pyobject*\npy_myfunc(void)\n{'
```
注意模板字符串中的{1}和转义的{{.


内置的re模块将使用`\1`代替:
`r"静态pyobject*\npy庀1(void)\n{'`

使用`{name}`而不是`\g<;name>;`.

可以使用{0}引用整个匹配。


这使模板字符串更易于读取,意味着不再需要
原始字符串。

与现有的基于"re"的代码一起使用。

`` python
>;>pcre.启用"re_template_mode()
>;>pcre.sub(r'(.),r'[\1],'f o o')
'[f][o][o]'
````

还为那些一次性的情况提供了转换"re"模板的函数。

`` python
>;>;gt;pcre.转换"re"模板(r'static pyobject*\npy{1(void)\n{')
"static pyobject*\npy{1}(void)\n{{'
````


不匹配的组将替换为"",而在"re"模式下,在模板中引用此类组是错误的。

处理python pcre内部使用pcre库的utf-8接口。


因为ascii是utf-8的子集。
其他字节字符串在内部使用简单的latin1到utf-8编解码器重新编码,该编解码器将字符128-255映射到相同值的unicode码位。
此转换对调用者是透明的。

如果您知道您的字节字符串是utf-8,您可以使用'pcre.utf8'标志
告诉python pcre将它们直接传递给pcre。这面旗必须e每次编译utf-8模式或匹配utf-8主题时指定
。注意
在这种模式下,类似`.`可能匹配多个字节:

`` python
>;>pcre.compile('.').match(b'\xc3\x9c',flags=pcre.utf8).group()
b'\xc3\x9c'\two bytes
>;>_.decode('utf-8')
u'\xdc'一个字符
````

python pcre也接受unicode字符串作为输入。在python 3.3或更新版本中,实现[pep 393](http://legacy.python.org/dev/peps/pep-0393/),作为ascii存储在内部的unicode字符串直接传递给pcre。其他内部格式使用pythonapi编码为utf-8(如果有的话,使用unicode
对象中缓存的utf-8格式)。在较旧的python版本中,这些优化不受支持,因此所有unicode对象都需要额外的编码步骤。

python pcre还接受支持缓冲区接口的对象,例如"array.array"对象。支持旧的和新的缓冲区API,缓冲区包含字节
或Unicode字符,与字节/Unicode字符串具有相同的UTF-8编码策略。

接受为输入
或提供为输出的任何偏移量也会在字节偏移量和字符偏移量之间进行转换,以便
调用者不需要知道转换——偏移量总是
索引到指定的主题字符串中,无论是字节字符串还是Unicode字符串。




license
----

```
版权所有(C)2012-2015,Arkadiusz Wahlig
保留所有权利。


在源和二进制格式中重新分发和使用,无论是否进行
修改,在满足以下条件的情况下允许进行:
*源代码的重新分发必须保留上述版权
注意,此条件列表和以下免责声明。
*二进制形式的重新分发必须复制上述版权
注意,此条件列表以及随分发而提供的
文档和/或其他材料中的以下免责声明。
*既不是<;组织的名称>;未经事先书面许可,其贡献者的姓名也不得用于认可或推广由本软件衍生的产品。


但不限于,对适销性和特定用途适用性的暗示性保证不予承认。在任何情况下,版权所有人均不对任何直接、间接、附带、特殊、惩戒性或后果性损害负责(包括但不限于购买替代货物或服务;使用、数据或利润损失);(或业务中断)无论是何种原因造成的,也无论是合同责任、严格责任或侵权责任(包括疏忽或其他)中的任何责任理论,即使被告知可能发生此类损害。

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

推荐PyPI第三方库


热门话题
java FloatingAction按钮与RecyclerView中的CardView重叠   java如何计算CardLayout中的卡数   从远程系统上传MySQL数据库并访问Java应用程序   java调用堆栈如何处理带或不带返回类型的递归?   Springboot中的java组计数聚集   java如何在javafx textarea中使用richtextfx   获取与Mockito相关的错误时出现Java问题   java如何将JaxRS响应转换为Wiremock响应   Hadoop集群java。net ConnectionException:连接被拒绝错误   java如何加载文件私有文件类型是pem   java在元空间中的提升和加载的类   如何将系统属性传递给从HTML启动的Java小程序   java如何从网页中获取值并在主类中使用它?安卓应用   java在春天,advisor和aspect之间有什么区别?   java如何检测文件是否已重命名?   java消息驱动Bean何时使用