栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

删除字符串中除第一次出现以外的所有出现

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

删除字符串中除第一次出现以外的所有出现

此解决方案使用两个正则表达式。第一个正则表达式将整个文件/字符串分成三个块:

  1. 第一个块(捕获到group中
    $1
    )是从字符串开始到第一个HTML开始标记(包括该标记)的所有内容。
  2. 第二个块(捕获到group中
    $2
    )是第一个HTML开始标记之后到最后一个HTML关闭标记开始之间的所有内容。
  3. 第三个块(捕获到group中
    $3
    )包括最后一个HTML结束标记以及文件/字符串末尾的所有内容。

该函数首先尝试将正则表达式与输入文本匹配。如果匹配,则使用第二个正则表达式从最外面的HTML元素(先前在组2中捕获)的内容中删除所有HTML起始和结束标签。然后使用三个大块重新组装字符串(中间大块已去除HTML标签)。

def stripInnermostHTMLtags(text):    '''Strip all but outermost HTML start and end tags.    '''    # Regex to match outermost HTML element and its contents.    p_outer = re.compile(r"""        ^      # Anchor to start of string.        (.*?<html[^>]*>)  # $1: Outer HTML start tag.        (.*)   # $2: Outer HTML element contents.        (</htmls*>.*)    # $3: Outer HTML end tag.        $      # Anchor to end of string.        """, re.DOTALL | re.VERBOSE | re.IGNORECASE)    # Split text into outermost HTML tags and its contents.    m = p_outer.match(text)    if m:        # Regex to match HTML element start or end tag.        p_inner = re.compile("</?html[^>]*>", re.IGNORECASE)        # Strip contents of any/all HTML start and end tags.        contents = p_inner.sub("", m.group(2))        # Put string back together stripped of inner HTML tags.        text = m.group(1) + contents + m.group(3)    return text

请注意,此解决方案可以正确处理HTML开始标记中的所有属性。还要注意,此解决方案不处理具有属性值包含

>
字符值的HTML标记(但这应该非常少见)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/669429.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号