正则表达式不返回任何内容。为什么?

时间:2013-08-18 01:19:48

标签: python regex python-3.x escaping

这什么都不返回?

# Enter your code for "Image Extractor" here.
import re
with open('site.html') as html:
    content = html.read()
    content = str(content)
    print(re.findall(r'<ima?ge?\s+[^>]*?src=["|\']([^["|\']]+)', content))

我认为这与我逃避表达式的反斜杠有关...

1 个答案:

答案 0 :(得分:2)

[^["|\']]

我不确定你想要做什么。您不能嵌套字符类或使用|进行字符类中的替换。现在的方式,此部分匹配任何不是以下任何一个字符:

[
"
|
'

后跟文字]。如果你希望这是一个单个字符类,它只匹配单引号或双引号,你想要

[^"\']