python实现统计汉字/英文单词数的正则表达式



import re

def count_chars_and_words(text):
    # 匹配汉字的正则表达式
    chinese_pattern = re.compile(r'[\u4e00-\u9fa5]+')
    # 匹配英文单词的正则表达式,这里假设单词由字母组成,可能包含单引号或连字符
    english_word_pattern = re.compile(r'\b[A-Za-z\'-]+?\b')
    
    # 使用findall方法查找所有匹配的汉字和英文单词
    chinese_chars = chinese_pattern.findall(text)
    english_words = english_word_pattern.findall(text)
    
    # 计算数量
    num_chinese_chars = len(chinese_chars)
    num_english_words = len(english_words)
    
    return num_chinese_chars, num_english_words

# 示例文本
text = "这是一个测试文本,包括Hello World和一些其他词汇,比如Python。"
num_chinese, num_english = count_chars_and_words(text)
print(f"汉字数量: {num_chinese}, 英文单词数量: {num_english}")

这段代码定义了一个函数`count_chars_and_words`,它接受一个文本字符串作为输入,并使用正则表达式来统计其中的汉字数量和英文单词数量。汉字的正则表达式匹配了Unicode编码范围在`\u4e00-\u9fa5`之间的所有字符,而英文单词的正则表达式则匹配了由字母、单引号或连字符组成的单词边界内的序列。函数最后返回汉字和英文单词的数量。