如何使用Python正则表达式去除字符串两端的双引号
用Python正则去除字符串两端的双引号(含HTML实体场景)
很简单,用Python内置的re模块就能轻松搞定这个需求。下面分两种常见场景给你具体的实现方案:
1. 处理单个带两端双引号实体的字符串
如果你拿到的是单独的目标字符串(比如"G27707"),只需要匹配并移除开头和结尾的"实体即可:
import re original_str = ""G27707"" cleaned_str = re.sub(r'^"|"$', '', original_str) print(cleaned_str) # 输出: G27707
正则说明:
^":精准匹配字符串开头的"实体|:表示逻辑“或”,匹配两种场景之一"$:精准匹配字符串结尾的"实体- 把匹配到的内容替换为空字符串,就完美去掉了两端的双引号实体。
2. 批量处理整个网页源码片段
针对你提供的完整网页源码片段:
@context":"http://schema.org","@type":"Product","sku":"G27707","brand":"adidas"
我们可以批量替换所有被"包裹的内容,直接保留中间的文本:
import re source_code = '@context":"http://schema.org","@type":"Product","sku":"G27707","brand":"adidas"' cleaned_code = re.sub(r'"(.*?)"', r'\1', source_code) print(cleaned_code)
执行后输出结果:
@context:http://schema.org,@type:Product,sku:G27707,brand:adidas
正则说明:
":匹配双引号的HTML实体(.*?):非贪婪模式匹配任意字符(尽可能少的匹配,避免误匹配跨多个引号的内容),并用括号将中间内容捕获为分组r'\1':替换为我们捕获到的第1个分组内容,相当于直接去掉了前后的"实体。
补充:如果是普通双引号而非HTML实体
如果你的源码里的双引号是普通的"(不是"),只需要把正则中的"替换为"即可:
- 单个字符串处理:
re.sub(r'^"|"$', '', original_str) - 批量处理源码:
re.sub(r'"(.*?)"', r'\1', source_code)
内容的提问来源于stack exchange,提问作者asad khan
相关产品推荐
相关产品推荐

