我正在尝试提取其中包含并匹配两个标签的 URL,这些标签具有关闭以及打开/未关闭的带有 href 的标签。
这就是正则表达式:
<(\w+)\s[^<>]*?href=[\'"]([\w$-_.+!*\'\(\),%\/:#=?~\[\]!&@;]*?)[\'"].*?>((.+?)</\1>)?
以下是一些示例数据:
<link href='http://blah.net/message/new/?stopemails.aspx?id=5A42FDF5' /><table><tr><td>
<a href='http://blah.net/message/new/'>Click here and submit your updated information </a> <br><br>Thanking you in advance for your attention to this matter.<br><br>
Regards, <br>
Debbi Hamilton
</td></tr><tr><td><br><br></td></tr></table>
并将其放入http://re-try.appspot.com/或http://www.regexplanet.com/advanced/java/index.html(是的,我知道它是针对 java 的)产生的正是我想要得到的: 标记、href 文本、带有结束标记的封闭文本以及封闭文本本身。
也就是说,当我在我的 python 应用程序中使用它时,最后两组(带标签的封闭文本和本身封闭的文本)总是None
. 我怀疑它与具有反向引用的组中的组有关:((.+?))?
另外,我应该提到我专门使用: matcher = re.compile(...) matcher.findall(数据)
但是这些群体None
同时出现在matcher.search(data)
和matcher.match(data)
任何帮助将不胜感激!