从字符串中获取列表,删除所有非字母数字字符

时间:2018-03-07 14:43:26

标签: python

我从文件中提取了这个字符串:

{$project: {"date":"$_id.date",
"location":"$data.location",
"coachgroup":"$data.coachgroup",
"staffedcoaches":"$data.staffedcoaches"
},
{$addFields: {
"allots":{
    $floor:[
    {$subtract: 
        ["$staffedcoaches",
        {$divide:
            ["$virtualheads","$ratio"]}
    ]}]
        }}},

我需要通过删除所有非字母数字字符或空格来清理该字符串,所以它看起来像这样:

my_string = '\x01\x00\x0e\x00\xff\xff\xffPepe A\x00\xc4\x93\x00\x00100000\x00\xff\xff\xffNu\xf1ez Jim\xe9nez\x00\xf41\x00'

到目前为止,我已尝试使用以下代码:

['Pepe A','100000','Nuñez Jiménez','1']

但我没有得到我需要的结果。有人可以给我一些想法吗?我使用的是Python。

1 个答案:

答案 0 :(得分:3)

这样的事情会让你接近:

代码:

re.split(r'ÿÿÿ|AÄ|ô', ''.join(ch for ch in my_string if ch.isalnum() or ch == ' ')))

测试代码:

import re

my_string = '\x01\x00\x0e\x00\xff\xff\xffPepe A\x00\xc4\x93\x00\x00100000' \
            '\x00\xff\xff\xffNu\xf1ez Jim\xe9nez\x00\xf41\x00'

print(re.split(r'ÿÿÿ|AÄ|ô', ''.join(ch for ch in my_string
                                    if ch.isalnum() or ch == ' ')))

结果:

['', 'Pepe ', '100000', 'Nuñez Jiménez', '1']