You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python正则判断字符串是否包含各类引号(含特殊引号)?

常见引号字符列表及Python正则实现

一、全类型引号字符汇总

以下是人类认知中属于引号范畴的字符,涵盖普通ASCII字符和各类排版专用特殊字符:

  • 普通双引号:"(ASCII 34),Python字符串直接写",正则中直接使用"
  • 普通单引号:'(ASCII 39),Python字符串若用单引号包裹需转义为\',正则中直接使用'
  • 左双弯引号(“):Unicode编码\u201C,Python字符串可直接写“或"\u201C",正则中写法一致
  • 右双弯引号(”):Unicode编码\u201D,Python字符串可直接写”或"\u201D"
  • 左单弯引号(‘):Unicode编码\u2018,Python字符串可直接写‘或"\u2018"
  • 右单弯引号(’):Unicode编码\u2019,Python字符串可直接写’或"\u2019"
  • **反引号()**:\u0060(ASCII 96),Python字符串用```包裹时需转义为``,正则中直接使用```
  • 左双角引号(«):Unicode编码\u00AB,Python字符串可直接写«或"\u00AB"
  • 右双角引号(»):Unicode编码\u00BB,Python字符串可直接写»或"\u00BB"
  • 左单角引号(‹):Unicode编码\u2039,Python字符串可直接写‹或"\u2039"
  • 右单角引号(›):Unicode编码\u203A,Python字符串可直接写›或"\u203A"
  • 全角双引号("):Unicode编码\uFF02,Python字符串可直接写"或"\uFF02"
  • 全角单引号('):Unicode编码\uFF07,Python字符串可直接写'或"\uFF07"

二、Python正则判断实现

只需将所有目标引号字符放入正则字符集[]中,即可快速判断字符串是否包含任意类型的引号。

代码示例:

import re

def contains_any_quote(input_str):
    # 正则字符集包含所有上述引号类型,使用原始字符串避免转义干扰
    quote_regex = re.compile(r"['\"`“”‘’«»‹›"']")
    # search方法匹配到任意引号则返回True,否则False
    return bool(quote_regex.search(input_str))

# 测试示例
test_cases = [
    '带普通单引号的字符串',
    "带普通双引号的字符串",
    '`带反引号的字符串`',
    '“带左双弯引号的字符串”',
    '‘带左单弯引号的字符串’',
    '«带双角引号的字符串»',
    '全角"双引号测试"',
    '无引号的纯文本内容'
]

for case in test_cases:
    print(f'字符串「{case}」包含引号:{contains_any_quote(case)}')

注意事项:

  • 使用Python原始字符串r""定义正则表达式,可避免字符串层面的转义冲突
  • 若需匹配成对出现的引号(如左弯引号对应右弯引号),需单独编写分组匹配逻辑,上述代码仅用于判断是否存在任意引号

内容的提问来源于stack exchange,提问作者PurpleVermont

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 18:37:12