已知一个字符串中包含了许多组英文单词和中文词语,英文和中文交错排列。现需要编程将中文和英文分开,然后分别输出
s='asd中文xyz测试qwe'
a=''
b=''
for i in s:
if i.isascii():
a+=i
else:
b+=i
print(a)
print(b)
根据 unicode 字符集范围,使用正则匹配最方便了,一篇混杂了各种字符和符号的内容,可以用正则直接提取出相应内容
import re
a='abc124我看看.。-——《》⒈⒉()ぁあィゥΓΔЁЖāí┠┗'
print(re.sub('[^\u4E00-\u9FBF\u3000-\u303F]','',a)) # 移除所有非中文和中文标点的内容
print(re.sub('[^\u3040-\u30FF\u3000-\u303F]','',a)) # 移除所有非日语和中文标点的内容
分析:对原字符串的每个字符,检查其ASCII值,在[0,127]范围内即为英文,否则为中文,查看字符的ASCII码值:ord( )。