首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用正则表达式查找多个事件

使用正则表达式查找多个事件
EN

Stack Overflow用户
提问于 2014-04-24 08:52:30
回答 3查看 62关注 0票数 0

是否可以使用一个正则表达式来捕获href中的所有信息?

例如:

代码语言:javascript
复制
<div id="w1">
    <ul id="u1">
        <li><a id='1' href='book'>book<sup>1</sup></a></li>
        <li><a id='2' href='book-2'>book<sup>2</sup></a></li>
        <li><a id='3' href='book-3'>book<sup>3</sup></a></li>
    </ul>
</div>

我想要bookbook-2book-3

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-04-24 08:54:47

简短而简单:

代码语言:javascript
复制
html = '<div id="w1"><ul id="u1"><li><a id='1' href='book'>book<sup>1</sup></a></li><li><a id='2' href='book-2'>book<sup>2</sup></a></li><li><a id='3' href='book-3'>book<sup>3</sup></a></li></ul></div>'
result = re.findall("href='(.*?)'", html)

解释:

代码语言:javascript
复制
Match the character string “href='” literally (case sensitive) «href='»
Match the regex below and capture its match into backreference number 1 «(.*?)»
   Match any single character that is NOT a line break character (line feed) «.*?»
      Between zero and unlimited times, as few times as possible, expanding as needed (lazy) «*?»
Match the character “'” literally «'»
票数 2
EN

Stack Overflow用户

发布于 2014-04-24 08:55:28

您可以使用下面的regex来实现这一点

代码语言:javascript
复制
<a id='\d+' href='([\w-]+)'

import re

s = '''<div id="w1"><ul id="u1"><li><a id='1' href='book'>book<sup>1</sup></a></li><li><a id='2' href='book-2'>book<sup>2</sup></a></li><li><a id='3' href='book-3'>book<sup>3</sup></a></li></ul></div>'''

>>> print re.findall(r"<a id='\d+' href='([\w-]+)'", s)
['book', 'book-2', 'book-3']
票数 0
EN

Stack Overflow用户

发布于 2014-04-24 11:42:43

使用自定义类扩展HTMLParser

代码语言:javascript
复制
class MyHTMLParser(HTMLParser):
    def __init__(self,*args,**kw):
        super().__init__(*args,**kw)
            self.anchorlist=[]

    def handle_starttag(self,tag,attrs):
        if tag == 'a':
            for attribute in attrs:
                if attribute[0] == 'href':
                    self.anchorlist.append(attribute[1])

这将把所有的URL放在anchorlist中。

顺便说一下,它是在Python3.x中

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23264172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档