以下字符串
str1 = "Hello\x00MORE\x11\x20TEXT\x05here"
应转换为此列表(删除所有十六进制字符串,但\x20应为空白):
list1 = ['Hello', 'MORE TEXT', 'here']
到目前为止,我的解决方案是:
new_list = re.split('\s+', re.sub('[\x01-\x1f\x7f]', ' ', s))
它产生:
list1 = ['Hello', 'MORE', 'TEXT', 'here']
但正如您所看到的,我需要MORE TEXT
成为一个字符串,所以\x20
应该转换为空白。我如何使用我的正则表达式而不考虑\x20
?你知道吗
首先,可以根据以下正则表达式拆分字符串:
这种模式使用look-around将字符串拆分为
\x00
和\x1f\x7f
之间的十六进制数,前面是小写字母,或者|
和\x1f\x7f
之间的十六进制数,后面是小写字母!然后您将得到以下结果:现在您需要用空字符串替换十六进制数,或者像我所做的那样,您可以用空格替换十六进制数的任意组合。你知道吗
相关问题 更多 >
编程相关推荐