Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中使用正则表达式从字节中提取单词?_Python_Regex - Fatal编程技术网

如何在python中使用正则表达式从字节中提取单词?

如何在python中使用正则表达式从字节中提取单词?,python,regex,Python,Regex,我有一个字节: b'\n\x1b\t\xff\xff\xff\x7f^\x8a\x11\x00\x00\XB8HL\xbf\x19\x00\x00\x00\x00\x00\x00\x00\xd9?\x127\r\xc9\xd5“=\x15\xc9\xd5”=\x1a+\x1a\n\x1e\x12\x1c\n\x0fMovies“\X070\x01\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 b'\n\x1b\t\x01\x00\x00\x00\X04\

我有一个字节:

b'\n\x1b\t\xff\xff\xff\x7f^\x8a\x11\x00\x00\XB8HL\xbf\x19\x00\x00\x00\x00\x00\x00\x00\xd9?\x127\r\xc9\xd5“=\x15\xc9\xd5”=\x1a+\x1a\n\x1e\x12\x1c\n\x0fMovies“\X070\x01\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 b'\n\x1b\t\x01\x00\x00\x00\X04\x9b\xb0\xbf\x11\x01\x00\xc0/\xe3\x90?\x19\x01\x00\x00\XA0\xc4\xef?\x127\r | \x934=\x15 | \x934=\x1a+\x1a+\x1a)\n\x1e\x12\x1c\n\x0fMovies“\x07TV系列0\x01\x11\x00\x00\x00\x00\x00\x00

使用正则表达式,我想提取单词(在本例中为“电影”、“电影”和“电视剧”)

我尝试的是:


通常使用
.decode()
方法将字节转换为字符串。但是,您的字节包含的值不是ASCII或UTF-8

我的建议是遍历每个字节,并尝试将其解释为ASCII值

raw= b'\n\x1b\t\xff\xff\xff\x7f@^\x8a?\x11\x00\x00\x00@\xe8HL\xbf\x19\x00\x00\x00\x00\x95\xb0\xd9?\x127\r\xc9\xd5"=\x15\xc9\xd5"=\x1a+\x1a)\n\x1e\x12\x1c\n\x0fMovies"\x07Bollard0\x01\x11\x00\x00\x00\x00\x00\x00\xf0?' b'\n\x1b\t\x01\x00\x00\x00\xa4\x9b\xb0\xbf\x11\x01\x00\x00\xc0/\xe3\x90?\x19\x01\x00\x00\xa0U\xc4\xef?\x127\r|\x934=\x15|\x934=\x1a+\x1a)\n\x1e\x12\x1c\n\x0fMovies"\x07TV Series0\x01\x11\x00\x00\x00\x00\x00\x00\xf0?'
string = ""
for b in raw:
    string += chr(b)
print(string)
之后,您可以使用正则表达式方法查找单词。定义一个单词的最小长度通常是个好主意

import re
for word in re.split('\W', string):
    if len(word) > 3:
        print(word)
这将给你:

Movies
Bollard0
Movies
Series0
你没有提到“宝莱德”,但我认为那是个错误


如果希望空格成为字符串的一部分,则需要修改正则表达式
\W
在单词边界上分裂,空格被视为一个边界。

不清楚你在做什么,以及你为什么只希望看
电影
电视剧
。请显示您的代码并解释哪些不起作用。