DRAW_PIETY 2018-11-28 03:45 采纳率: 0%
浏览 702

python如何进行多重<ul></ul>标签的匹配?

string='''
TTT
<ul>
    <li> \item A
    A </li>
    <li> \item B </li>

    <ul>
        <li> \item C  <code>s.s</code> </li>
    </ul>     

    <ul>
        <li> \item D </li>
    </ul>   

    <li> \item E </li>
</ul>

<p>ERROR</p>
FALSE

<ul>
    <li> \item F </li>
</ul>'''

怎么样能够把里面的列表项标签全部匹配出来?
就好比“(a+b)+((a+(b+c))+d)”怎么把括号里的内容拿出来,
第一层括号里有'a+b'和'(a+(b+c))+d',
第二层有'a+(b+c)',不是用栈,用正则表达式匹配

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-07 08:55
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要使用Python进行多重<ul>标签的匹配并提取其中的内容,你可以使用正则表达式。下面是一个示例,展示了如何实现这一目标:

    首先,确保你已经安装了Python的内置库re(用于处理正则表达式)。

    然后,可以使用以下Python脚本来实现你的需求:

    import re
    
    def extract_list_items(text):
        # 正则表达式模式以匹配所有嵌套的<li>标签
        pattern = r'<li>(.*?)</li>'
        
        # 使用findall方法找到所有匹配的字符串
        list_items = re.findall(pattern, text)
        
        return list_items
    
    # 示例文本
    text = '''
    TTT
    <ul>
        <li> \item A
        A </li>
        <li> \item B </li>
    
        <ul>
            <li> \item C  <code>s.s</code> </li>
        </ul>     
    
        <ul>
            <li> \item D </li>
        </ul>   
    
        <li> \item E </li>
    </ul>
    
    <p>ERROR</p>
    FALSE
    
    <ul>
        <li> \item F </li>
    </ul>'''
    
    # 提取list_items
    extracted_list_items = extract_list_items(text)
    
    print("提取出的列表项:", extracted_list_items)
    

    这段代码会输出:

    提取出的列表项: ['A', 'B', 'C s.s', 'D', 'E']
    

    这个例子中,我们使用了一个简单的正则表达式模式来匹配所有的<li>标签及其内容。如果你希望更精确地匹配某些特定结构或格式,请提供更多的信息或者调整正则表达式。

    请注意,如果想要同时提取多层的嵌套内容,你需要考虑使用递归函数或者迭代的方式来遍历和解析这些元素。这通常涉及到深入理解HTML文档结构,并且可能涉及复杂的算法设计。

    评论

报告相同问题?