码迷,mamicode.com
首页 > 编程语言 > 详细

【python】正则表达式中的转义问题

时间:2017-06-05 23:42:01      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:pytho   使用   应该   字符   escape   pat   报错   mpi   att   

encode(‘string-escape‘) 解决

 

比如想匹配‘\x0e\x0a‘中的‘\x‘后的内容,这里希望把‘\x0e‘作为一个字符串,那么其中的\应该被转义。

未加转义的正则:

p = ‘(?<=\x)[0-9A-Za-z]{2}‘

直接这样写会报错,需要给\转义,于是变为

p = ‘(?<=\\x)[0-9A-Za-z]{2}‘

但由于使用的时候,会先将p的内容转义,然后匹配,所以又变成了\x和原始数据匹配,又会出错。解决:

p = ‘(?<=\\x)[0-9A-Za-z]{2}‘.encode(‘string-escape‘)

或者

p = ‘(?<=\\\\x)[0-9A-Za-z]{2}‘

 

测试代码:

import re

a = "\\x0e\\x0b\\x0c"
print a
p = (?<=\\x)[0-9A-Za-z]{2}.encode(string-escape)
pattern = re.compile(p)
m = pattern.findall(a)
print m

输出:

\x0e\x0b\x0c
[0e, 0b, 0c]

【python】正则表达式中的转义问题

标签:pytho   使用   应该   字符   escape   pat   报错   mpi   att   

原文地址:http://www.cnblogs.com/dplearning/p/6947361.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!