Python判断字符串中是否有中文的四种方法

 更新时间:2026年01月31日 15:41:21   作者:小满大王i  
在 Python 中,判断字符串中是否包含中文字符,可以使用正则表达式或Unicode 编码范围检查,本文为大家整理了四种常用方法,有需要的小伙伴可以了解下

在 Python 中,判断字符串中是否包含中文字符,可以使用正则表达式或Unicode 编码范围检查。以下是几种方法:

方法 1:使用正则表达式(推荐)

import re

def contains_chinese(text):
    # 匹配任意中文字符(包括中文标点符号)
    pattern = re.compile(r'[\u4e00-\u9fff]')
    return bool(pattern.search(text))

# 测试
text1 = "Hello, 你好!"
text2 = "Hello, world!"
print(contains_chinese(text1))  # True
print(contains_chinese(text2))  # False

说明:

1.[\u4e00-\u9fff] 匹配基本中文字符范围(适用于大多数情况)。

2.如果需要匹配扩展中文字符(如繁体字、生僻字),可以扩展范围:

pattern = re.compile(r'[\u4e00-\u9fff\u3400-\u4dbf\U00020000-\U0002a6df\U0002a700-\U0002b73f\U0002b740-\U0002b81f\U0002b820-\U0002ceaf]')

方法 2:遍历字符串检查 Unicode 编码

def contains_chinese(text):
    for char in text:
        if '\u4e00' <= char <= '\u9fff':
            return True
    return False

# 测试
print(contains_chinese("Python 编程"))  # True
print(contains_chinese("Python"))      # False

说明:

  • 直接检查每个字符的 Unicode 编码是否在中文范围内。
  • 适用于不需要正则表达式的简单场景。

方法 3:使用 unicodedata 模块(更精确)

import unicodedata

def contains_chinese(text):
    for char in text:
        try:
            name = unicodedata.name(char)  # 获取字符的 Unicode 名称
            if "CJK UNIFIED" in name or "CJK COMPATIBILITY" in name:
                return True
        except ValueError:
            continue
    return False

# 测试
print(contains_chinese("中文"))  # True
print(contains_chinese("abc"))   # False

说明:

  • unicodedata.name(char) 返回字符的 Unicode 名称(如 "CJK UNIFIED IDEOGRAPH-4E00" 表示中文字符)。
  • 适用于精确判断,但性能稍差。

方法 4:检查中文标点符号(可选)

如果还需要检测中文标点符号(如 ,。!?),可以扩展正则表达式:

import re

def contains_chinese_or_punctuation(text):
    pattern = re.compile(r'[\u4e00-\u9fff\u3000-\u303f\uff00-\uffef]')
    return bool(pattern.search(text))

# 测试
print(contains_chinese_or_punctuation("Hello,世界!"))  # True

说明:

  • \u3000-\u303f 匹配中文标点符号(如 ,。、;:「」)。
  • \uff00-\uffef 匹配全角符号(如 !?()【】)。

总结

方法适用场景优点缺点
正则表达式通用情况(推荐)简洁高效需要记忆 Unicode 范围
遍历检查 Unicode简单场景直观易懂性能稍差
unicodedata精确判断可识别特殊字符性能较差
扩展标点符号需要检测标点更全面规则更复杂

推荐使用 正则表达式 方法,因为它简洁且适用于大多数情况。

到此这篇关于Python判断字符串中是否有中文的四种方法的文章就介绍到这了,更多相关Python判断字符串内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python高效操作Word的实用技巧与进阶方法

    Python高效操作Word的实用技巧与进阶方法

    在当今数据驱动的时代,自动化处理文档成为了提高工作效率的关键,本文旨在为读者提供一份全面而深入的指南,介绍如何使用Python来操作Word文档,有需要的小伙伴可以了解下
    2025-12-12
  • keras分类模型中的输入数据与标签的维度实例

    keras分类模型中的输入数据与标签的维度实例

    这篇文章主要介绍了keras分类模型中的输入数据与标签的维度实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • django 文件上传功能的相关实例代码(简单易懂)

    django 文件上传功能的相关实例代码(简单易懂)

    这篇文章主要介绍了django 文件上传功能的相关实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • Python通过uv进行虚拟环境管理的完整指南

    Python通过uv进行虚拟环境管理的完整指南

    这篇文章主要为大家详细介绍了Python通过uv进行虚拟环境管理的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-10-10
  • python爬取热搜制作词云

    python爬取热搜制作词云

    这篇文章主要介绍了python爬取百度热搜制作词云,首先爬取百度热搜,至少间隔1小时,存入文件,避免重复请求,如果本1小时有了不再请求,存入数据库,供词云包使用,爬取热搜,具体流程请需要的小伙伴参考下面文章内容
    2021-12-12
  • Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】

    Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】

    这篇文章主要介绍了Python字符串基本操作,结合实例形式总结分析了Python字符串的基本表示、运算、格式化输出、常用函数等,注释包含较为详尽的说明,便于理解,需要的朋友可以参考下
    2018-10-10
  • Matplotlib自定义坐标刻度的使用示例

    Matplotlib自定义坐标刻度的使用示例

    虽然matplotlib默认的坐标轴定位器与格式生成器可以满足大部分需求,但是并非对每一幅图都合适,本文主要介绍了Matplotlib自定义坐标刻度的使用示例,感兴趣的可以了解一下
    2023-11-11
  • 基于Python获取docx/doc文件内容代码解析

    基于Python获取docx/doc文件内容代码解析

    这篇文章主要介绍了基于Python获取docx/doc文件内容代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • python里读写excel等数据文件的6种常用方式(小结)

    python里读写excel等数据文件的6种常用方式(小结)

    这篇文章主要介绍了python里读写excel等数据文件的6种常用方式(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • python中lambda函数详解及用法举例

    python中lambda函数详解及用法举例

    这篇文章主要给大家介绍了关于python中lambda函数详解及用法的相关资料,Lambda 函数是 Python中的匿名函数,有些人将它们简称为lambdas,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11

最新评论