Unicode码中,中文的范围是0x4e00~0x9fa5。 根据字符的Unidcode值进行判断。
例如:
str='ab大飞cd';
str2=str(str>=hex2dec('4E00') & str <=hex2dec('9fa5'))
str2 = 大飞
这个办法可以提取出一个字符串中的中文字符,同理,也可以剔除一个字符串中的中文字符
最近在读取一些资料,有站位编号,又有站位中文名称,读取时十分无奈。(这个最近,是1年多之前了,我扒拉了好久,才找到原始文件和代码,自己写的自己也看不懂了。这篇文章居然没写完就发了,我还一直以为是个参考呢,害死自己了)
fid1 = fopen(filename1,'r');
fid2 = fopen(filename2,'w');
Station_string = '54111';
while ~feof(fid1)
tline1 = fgetl(fid);
if contains(tline1,Station_string)
tline2 = tline1(tline1<=hex2dec('4E00') | tline1 >=hex2dec('9fa5'));
if length(tline2)<100
fprintf(fid2,[tline2(2:end),'\n']);
end
end
end
fclose(fid1);
fclose(fid2);
在filename1这个文件中,逐行遍历,
读取一行tline1,定位包含特定站位(Station_string)的这一行字符串,
剔除中文后字符串为tline2,
并把tline2写入filename2这个文件里。