如何检测 Python 字符串中是否包含任意类型的引号字符(包括智能引号)-Python教程

本文详解如何用正则表达式精准识别字符串中是否存在标准或 unicode 智能引号(如 “” ‘’ 等),提供可直接运行的代码、完整字符列表及实用注意事项。

在文本处理中,用户输入或富文本(如 Microsoft Word、网页内容)常包含多种引号变体:除了 ASCII 中的 straight quotes “、’ 和反引号 `,还有 Unicode 中的“智能引号”(smart quotes)——例如左双引号 “(U+201C)、右双引号 ”(U+201D)、左单引号 ‘(U+2018)、右单引号 ’(U+2019)。这些字符在视觉上更美观,但对程序而言是独立的 Unicode 码点,需显式纳入匹配范围。

Python 正则表达式不提供内置的“所有引号”字符类(如 \p{Pf} 这类 Unicode 类别需 regex 库支持),因此最可靠、兼容性最强的方式是显式枚举常用引号字符。以下是推荐的完整引号集合(覆盖绝大多数实际场景):

类型 字符 Unicode 名称 Python 字符串表示
ASCII 双引号 “ QUOTATION MARK “
ASCII 单引号 ‘ APOSTROPHE ‘
ASCII 反引号 ` | GRAVE ACCENT | `
智能双引号(左) “ LEFT DOUBLE QUOTATION MARK “
智能双引号(右) ” RIGHT DOUBLE QUOTATION MARK ”
智能单引号(左) ‘ LEFT SINGLE QUOTATION MARK ‘
智能单引号(右) ’ RIGHT SINGLE QUOTATION MARK ’
其他常见变体(可选) «, », ‹, › LEFT/RIGHT POINTING DOUBLE/SINGLE ANGLE QUOTATION MARK «, », ‹, ›

✅ 检测字符串是否含任意引号的推荐方案(简洁高效):

import re

def contains_quote(s: str) -> bool:
    # 匹配任意一种引号字符(注意:此处为正向匹配,更直观)
    quote_pattern = r'[\"\'`“”‘’«»‹›]'
    return bool(re.search(quote_pattern, s))

# 示例测试
test_strings = [
    'Plain text without quotes',
    '"Double quoted"',
    "‘Smart single quoted’",
    "«Guillemets» and `backticks`",
    "No quotes here — but em-dash."
]

for s in test_strings:
    print(f"{repr(s):<40} → {contains_quote(s)}")

⚠️ 重要注意事项:

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » 如何检测 Python 字符串中是否包含任意类型的引号字符(包括智能引号)-Python教程
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1393+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4023829+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1393+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4023829+
  • 本周更新: 0+
  • 最后更新: 2026-03-16