Python正则表达式返回空字符串而不是结果

时间:2014-01-02 21:12:37

标签: python regex string

我一直在尝试使用Python的正则表达式模块:Re。

我决定编写一个简单的表达式来搜索文件中的链接(href="url")。

这是我的正则表达式:href *= *(\"|\').*\1

当我使用名为GSkinner的网站时,我决定试用我的表达方式。结果是here以及代码。

当我决定在python正则表达式上尝试时,我使用了以下代码:

lines = """Code found in link"""
results = re.findall(r"href *= *(\"|\').*\1", lines)
print results # Ouputs: ['"', '"'] instead of two provided links

为什么结果以空字符串输出?

1 个答案:

答案 0 :(得分:1)

findall将仅返回捕获的内容(除非未捕获任何内容)。您还必须捕获所需的值:

r"href *= *(\"|\')(.*?)\1

你们可能想要使用类似的东西:

results = [x[1] for x in re.findall(r"href *= *(\"|\')(.*?)\1", lines)]