2015-12-28 63 views
1

这是 Python split by regex look behind控制代码

一个更新的问题,我需要把控制代码中的正则表达式像0X0A 0X0D,或像0x07的0×00

当我使用下面的代码的任何其它控制代码,结果是不正确的:

import re 
a = '''aaaaa 
bbbb 
cccc 
''' 
x = re.findall(r"[^%s]+%s" % (0x0a,0x0a),a,re.DOTALL) 
print x 

[]

我可以使用Python split by regex look behind中的答案作为控制代码是0x0a==\n,那么其他控制代码呢?

+1

' “[^%S] +%的” %(0X0A,0X0A)''=='[^ 10] 10 “'。所以实际上你使用'x = re.findall(r'[^ 10] +10',a,re.DOTALL)'而不是'x = re.findall(r'[^ \ n] + \ n' ,a,re.DOTALL)'。 –

+0

@KevinGuan谢谢,我现在得到了答案 – Boying

+0

然后发布它作为答案。 –

回答

1

通过@KevinGuan提醒的是,我发现了问题

下面是正确的代码:

import re 
a = '''aaaaa 
bbbb 
cccc 
''' 
x = re.findall(r"[^%s]+%s" % (chr(0x0a),chr(0x0a)),a,re.DOTALL) 
print x 

我也是一个Perler,在Perl中我们可以这样写:

$Line =~ s/,[\t ]*(\x0d?\x0a)/,$1/g; 

当我移植Perl脚本Python中,没料到的差