首页 > 其他分享 >LeetCode|1410. HTML 实体解析器

LeetCode|1410. HTML 实体解析器

时间:2023-03-10 12:22:05浏览次数:55  
标签:解析器 字符 text 实体 re HTML 1410

题目链接:1410. HTML 实体解析器

「HTML 实体解析器」 是一种特殊的解析器,它将 HTML 代码作为输入,并用字符本身替换掉所有这些特殊的字符实体。

HTML 里这些特殊字符和它们对应的字符实体包括:

双引号:字符实体为 " ,对应的字符是 " 。
单引号:字符实体为 ' ,对应的字符是 ' 。
与符号:字符实体为 & ,对应对的字符是 & 。
大于号:字符实体为 > ,对应的字符是 > 。
小于号:字符实体为 &lt; ,对应的字符是 < 。
斜线号:字符实体为 &frasl; ,对应的字符是 / 。
给你输入字符串 text ,请你实现一个 HTML 实体解析器,返回解析器解析后的结果。

示例 1:

输入:text = "&amp; is an HTML entity but &ambassador; is not."
输出:"& is an HTML entity but &ambassador; is not."
解释:解析器把字符实体 &amp; 用 & 替换

示例 2:

输入:text = "and I quote: &quot;...&quot;"
输出:"and I quote: \"...\""

示例 3:

输入:text = "Stay home! Practice on Leetcode :)"
输出:"Stay home! Practice on Leetcode :)"

示例 4:

输入:text = "x &gt; y &amp;&amp; x &lt; y is always false"
输出:"x > y && x < y is always false"

示例 5:

输入:text = "leetcode.com&frasl;problemset&frasl;all"
输出:"leetcode.com/problemset/all"

提示:

  • 1 <= text.length <= 10^5
  • 字符串可能包含 256 个ASCII 字符中的任意字符。

解题思路

比较简单暴力,直接用正则表达式解决。

正则表达式

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

这里用到了 re.sub() 函数,该函数主要用于替换字符串中的匹配项。详细介绍可以看这里re.sub()用法的详细介绍_jackandsnow的博客-CSDN博客

Python代码

import re
class Solution:
    def entityParser(self, text: str) -> str:
        if '&quot;' in text:
            text = re.sub('\&quot;','"',text)
        if '&apos;' in text:
            text = re.sub('\&apos;',"'",text)
        if '&gt;' in text:
            text = re.sub('\&gt;','>',text)
        if '&lt;' in text:
            text = re.sub('\&lt;','<',text)
        if '&frasl;' in text:
            text = re.sub('\&frasl;','/',text)
        if '&amp;' in text:
            text = re.sub('\&amp;','&',text)
        return text

效率很高,但是内存占用也很高,用空间换时间了属于是

标签:解析器,字符,text,实体,re,HTML,1410
From: https://www.cnblogs.com/tangjielin/p/17202624.html

相关文章

  • Html转换为PDF
    通过nuget添加  text7.pdfhtml///<summary>///pdf下载///</summary>///<returns></returns>[ValidateInput(false)]......
  • 解决苹果Safari 浏览器下html不能自动播放声音和视频的问题-实时语音通话功能【唯一客
    在实现我的客服系统中,实时语音通话功能的时候,如果想自动播放音视频流,在苹果设备上遇到了问题。苹果浏览器(Safari)在默认情况下不允许声音在背景里自动播放。这是出于用户体......
  • HTML基础语法
    一、标记语法1.封闭类型标记:也叫双标记语法:<标记>内容</标记>注意:封闭标记必须成对出现,在结束标记里,先写一个/,再写标记名称如果没有在结束标记里......
  • html中hr标签的用法
    https://www.yisu.com/zixun/119190.htmlhtml中hr标签定义和用法:<hr>标签在HTML页面中创建一条水平线。水平分隔线(horizontalrule)可以在视觉上将文档分隔成各个部分......
  • 界面组件DevExpress WinForms v22.2 - 升级对HTML & CSS的支持
    DevExpressWinForms拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office......
  • HTML5 Canvas 与 SVG 与 div
    动态创建元素并能够移动它们的最佳方法是什么?例如,假设我想创建一个矩形、圆形和多边形,然后选择这些对象并将它们四处移动。我知道HTML5提供了三个元素可以使这成为......
  • HTMLReport使用2 | HTMLReport使用方法详解
    (2|HTMLReport的使用)注:以下实例来源于官网。1日志为测试报告中添加过程日志;多线程下,在报告中会分别记录每个线程的日志,同时会产生与测试报告同名的测试log文件。......
  • HTML编辑器粘贴word图片且图片文件自动上传功能
    ​ 如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml......
  • 基于ElementUI和Vue.js的SUNBOOK图书后台管理系统(纯HTML、原生Java后端开发)
    一、项目介绍-使用element-ui、axios和Vue.js实现SUNBOOK的页面结构及网页请求-通过JSON传递请求与响应参数-在后端使用JdbcUtilsByDruid实现对数据的增加、删除、......
  • html学习
    快捷键使用这些快键键仅代表在vscode环境下使用英文状态!+回车<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Com......