用python处理html代码的转义与还原

转义 escape:

import cgi
s = cgi.escape("""& < >""") # s = ‘& < >’

反转义 unescape:

#使用标准库
from htmllib import HTMLParser
h = HTMLparser.HTMLParser()
s = h.unescape(’& < >’) # s = u’& < >’

#使用BeautifulSoup
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,
convertEntities=BeautifulSoup.HTML_ENTITIES)

引用于:
http://fredericiana.com/2010/10/08/decoding-html-entities-to-text-in-python/
https://wiki.python.org/moin/EscapingHtml

### 在 Python 中替换字符串或段落的解决方案 在 Python 中,可以使用内置的字符串方法 `str.replace()` 来替换字符串中的部分内容。这种方法简单易用,适用于大多数基本场景。对于更复杂的模式匹配和替换需求,则可以采用正则表达式模块 `re` 实现高级功能。 #### 1. 使用 `str.replace()` 进行简单的字符串替换 `str.replace(old, new[, count])` 是一种非常直观的方式,用于将字符串中的某些部分替换成新的内容。参数说明如下: - `old`: 原始子字符串。 - `new`: 新的子字符串,用来替代原始子字符串的部分。 - `count`(可选): 表示最多替换几次,默认为全部替换。 下面是一个具体例子: ```python original_text = "我喜欢学习Python编程语言" modified_text = original_text.replace("Python", "Java") print(modified_text) ``` 上述代码会输出 `"我喜欢学习Java编程语言"`[^2]。 #### 2. 处理大段落中的多次替换 当面对较长文本并需执行多步替换时,可以链式调用 `replace()` 方法依次处理不同目标词组。 例如: ```python paragraph = """Python是一种广泛使用的解释型、高级通用编程语言。 它由Guido van Rossum创建,并于1991年首次发布。""" updated_paragraph = ( paragraph .replace("Python", "Ruby", 1) .replace("高级", "低级") ) print(updated_paragraph) ``` 在这个例子中,“Python”第一次出现会被替换为“Ruby”,而所有“高级”的实例都会变成“低级”。最终打印的结果将是修改后的版本[^3]。 #### 3. 利用正则表达式进行灵活替换 如果需要基于某种模式而非固定字面值来进行替换操作,那么应该选用标准库中的 `re.sub(pattern, repl, string)` 函数。它可以接受正则表达式的规则作为输入条件从而实现更加动态化的控制流程。 示例演示如何移除HTML标签并将特殊字符转义出来: ```python import re import html html_content = '<p>这是一个测试<b><strong></b></p>' cleaned_html = re.sub(r'<.*?>', '', html_content) # 移除所有 HTML 标签 escaped_chars = html.unescape(cleaned_html) # 转换实体编码回正常字符 final_result = escaped_chars.replace('<', '<').replace('>', '>') print(final_result) ``` 这段脚本先删除了所有的 HTML 结构标记再还原那些被编码过的尖括号符号最后得到纯净干净的内容显示效果[^4]。 另外值得注意的是有时候我们可能还会碰到一些带有多种分隔符的大规模数据集此时就需要借助强大的正则引擎来拆解重组它们达到预期目的如以下片段所示: ```python import re messy_string = 'apple orange banana grapefruit pear apple' pattern = r'\b(apple|orange)\b' resulting_str = re.sub(pattern, lambda m: m.group().upper(), messy_string) print(resulting_str) ``` 在这里我们将满足给定模式的所有单词都转换成了全大写字母形式[^5]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值