import re pattern = r'[^\u4e00-\u9fa5a-zA-Z0-9]+' def keep_chinese_and_alphanumeric(text): return re.sub(pattern, '', text) # 示例 text = '这是一段包含汉字、数字和字母的字符串。\n1234abc' result = keep_chinese_and_alphanumeric(text) print(result) # 输出:这是一段包含汉字、数字和字母的字符串。1234abc 该正则表达式 [^\u4e00-\u9fa5a-zA-Z0-9]+ 匹配的是不包含中文、字母和数字的任意字符。使用 re.sub() 方法将匹配到的字符替换为空字符串,即可只保留汉字、数字和字母。
编写一个正则表达式来只保留汉字、数字和字母,可以使用Unicode字符类来实现。示例:import redef keep_chinese_digits_letters(text):pattern = re.compile(r'[^\u4e00-\u9fa5a-zA-Z0-9]')clean_text = re.sub(pattern, '', text)return clean_text# 示例用法text = "你好,世界!Hello 123."clean_text = keep_chinese_digits_letters(text)print(clean_text) # 输出: 你好世界Hello123在这个例子中,keep_chinese_digits_letters() 函数接受一个字符串作为输入,通过正则表达式模式 [^\u4e00-\u9fa5a-zA-Z0-9] 匹配除了汉字、字母和数字之外的任何字符,并使用 re.sub() 函数将非汉字、字母和数字的字符替换为空字符串,达到保留只包含汉字、字母和数字的目的。