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`之间的所有字符,而英文单词的正则表达式则匹配了由字母、单引号或连字符组成的单词边界内的序列。函数最后返回汉字和英文单词的数量。