python - 不能在类似字节的对象上使用字符串模式 - python 的重新错误

标签 python regex

<分区>

我正在做 python 挑战并试图熟悉 python,所以没有看答案,我尝试使用 python 的 url 阅读器来读取 html,然后找到所需的字母。但是在下面的代码中我得到一个错误,它最初是 python 3 urllib.request 但在解决它之后我得到一个新的错误:

<module>
    print ("".join(re.findall("[A-Za-z]", data)))
  File "C:\Python34\lib\re.py", line 210, in findall
    return _compile(pattern, flags).findall(string)
TypeError: can't use a string pattern on a bytes-like object

现在我试着在谷歌上查找这个错误,但我得到的只是关于 json,我不应该需要它?我的 python 不是那么强大,所以也许我做错了?

#Question 2 - find rare characters

import re
import urllib.request

data = urllib.request.urlopen("http://www.pythonchallenge.com/pc/def/ocr.html")
mess = data.read()
messarr = mess.split("--")

print ("".join(re.findall("[A-Za-z]", data)))

#Question 3 - Find characters in list

page = urllib.request.urlopen("http://www.pythonchallenge.com/pc/def/equality.html")
mess = page.read()
messarr = mess.split("--")
print ("".join(re.findall("[^A-Z]+[A-Z]{3}([a-z])[A-Z]{3}[^A-Z]+", page)))

最佳答案

问题是您混合了字节和文本字符串。您应该将数据解码为文本字符串(unicode),例如data.decode('utf-8'),或使用字节对象作为模式,例如re.findall(b[A-Za-z]")(注意字符串文字前的前导 b)。

关于python - 不能在类似字节的对象上使用字符串模式 - python 的重新错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30478736/

相关文章:

java - 使用正则表达式将句子拆分为单词,其中单词还包含多个空格

python - 在积极的后视中使用积极的前瞻?

惰性分组后的正则表达式匹配字符

python - op_kwargs 中带有 execution_date 的 Airflow Python 脚本

python - 如何创建一个对两个或多个相同形状的嵌套列表进行操作的 Python 函数?

python - 安装 Python 的新正则表达式模块不起作用

python - 如何将 python 3.4 脚本作为可执行文件运行?

python - 在哪里可以找到 _sre.py python 内置模块?

javascript - regex.test() 每隔一段时间才有效

Python:以特定字符开始每个换行符