题目链接:1410. HTML 实体解析器
「HTML 实体解析器」 是一种特殊的解析器,它将 HTML 代码作为输入,并用字符本身替换掉所有这些特殊的字符实体。
HTML 里这些特殊字符和它们对应的字符实体包括:
双引号:字符实体为 "
,对应的字符是 " 。
单引号:字符实体为 '
,对应的字符是 ' 。
与符号:字符实体为 &
,对应对的字符是 & 。
大于号:字符实体为 >
,对应的字符是 > 。
小于号:字符实体为 <
,对应的字符是 < 。
斜线号:字符实体为 ⁄
,对应的字符是 / 。
给你输入字符串 text ,请你实现一个 HTML 实体解析器,返回解析器解析后的结果。
示例 1:
输入:text = "& is an HTML entity but &ambassador; is not."
输出:"& is an HTML entity but &ambassador; is not."
解释:解析器把字符实体 & 用 & 替换
示例 2:
输入:text = "and I quote: "...""
输出:"and I quote: \"...\""
示例 3:
输入:text = "Stay home! Practice on Leetcode :)"
输出:"Stay home! Practice on Leetcode :)"
示例 4:
输入:text = "x > y && x < y is always false"
输出:"x > y && x < y is always false"
示例 5:
输入:text = "leetcode.com⁄problemset⁄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 '"' in text:
text = re.sub('\"','"',text)
if ''' in text:
text = re.sub('\'',"'",text)
if '>' in text:
text = re.sub('\>','>',text)
if '<' in text:
text = re.sub('\<','<',text)
if '⁄' in text:
text = re.sub('\⁄','/',text)
if '&' in text:
text = re.sub('\&','&',text)
return text
标签:解析器,字符,text,实体,re,HTML,1410 From: https://www.cnblogs.com/tangjielin/p/17202624.html效率很高,但是内存占用也很高,用空间换时间了属于是