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解析并读取PDF文件内容的方法

    Python解析并读取PDF文件内容的方法

    这篇文章主要介绍了Python解析并读取PDF文件内容的方法,结合实例形式分别描述了Python2.7在win32与win64环境下实现读取pdf的相关操作技巧,需要的朋友可以参考下
    2018-05-05
  • 详解Python3中的 input() 函数

    详解Python3中的 input() 函数

    这篇文章主要介绍了详解Python3中的 input() 函数的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2020-03-03
  • flask库中sessions.py的使用小结

    flask库中sessions.py的使用小结

    在Flask中Session是一种用于在不同请求之间存储用户数据的机制,Session默认是基于客户端Cookie的,但数据会经过加密签名,防止篡改,下面就来具体介绍一下如何使用
    2025-07-07
  • pycharm内无法import已安装的模块问题解决

    pycharm内无法import已安装的模块问题解决

    今天小编就为大家分享一篇pycharm内无法import已安装的模块问题解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • python enumerate函数的使用方法总结

    python enumerate函数的使用方法总结

    这篇文章主要介绍了python enumerate使用方法总结,enumerate函数用于遍历序列中的元素以及它们的下标,有兴趣的可以了解一下
    2017-11-11
  • Python实现单例模式的四种方法

    Python实现单例模式的四种方法

    在Python中实现单例模式,意味着一个类只能创建一个实例,单例模式在某些场景下非常有用,比如当你需要控制资源的访问,或者当你想确保全局只有一个对象实例时,本文给大家介绍了几种在Python中实现单例模式的方法,需要的朋友可以参考下
    2024-03-03
  • 如何运行带参数的python脚本

    如何运行带参数的python脚本

    这篇文章主要介绍了如何运行带参数的python脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • python中openpyxl和xlsxwriter对Excel的操作方法

    python中openpyxl和xlsxwriter对Excel的操作方法

    这篇文章主要介绍了python中openpyxl和xlsxwriter对Excel的操作方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Python关键字之global与nonlocal

    Python关键字之global与nonlocal

    这篇文章主要为大家详细介绍了Python关键字之global与nonlocal,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • python机器学习实现神经网络示例解析

    python机器学习实现神经网络示例解析

    这篇文章主要为大家介绍了python机器学习python实现神经网络的示例解析,在同样在进行python机器学习的同学可以借鉴参考下,希望能够有所帮助
    2021-10-10

最新评论