专栏名称: 爬虫俱乐部
Stata技术控,编程技术咨询,数据讨论与分享,编程和实证培训。
目录
相关文章推荐
AustinDatabases  ·  临时工:数据库人生路,如何救赎自己 -- ... ·  11 小时前  
数据分析与开发  ·  马斯克被“打脸”?150岁老人领社保,竟是程 ... ·  4 天前  
51好读  ›  专栏  ›  爬虫俱乐部

Unicode汉字与摩尔斯电码

爬虫俱乐部  · 公众号  ·  · 2018-06-11 09:13

正文


暑期Stata培训班招生啦!!! 接力线上的网课培训,我们在今夏又开始新一轮的线下培训啦! 8月4日至12日 ,爬虫俱乐部期待与您的相遇!培训具体内容详见推文 《暑期Stata编程技术定制培训班》


有问题,不要怕!点击推文底部“ 阅读原文 ”下载爬虫俱乐部用户问题登记表并按要求填写后发送至邮箱 [email protected] ,我们会及时为您解答哟~

喜大普奔~爬虫俱乐部的 github 主站正式上线了!我们的网站地址是: https://stata-club.github.io ,粉丝们可以通过该网站访问过去的推文哟~

好消息 :爬虫俱乐部即将推出研究助理供需平台,如果您需要招聘研究助理(Research Assistant or Research Associate),可以将您的需求通过我们的公众号发布;如果您想成为一个RA,可以将您的简历发给我们,进入我们的研究助理数据库。帮我们写优质的推文可以提升您被知名教授雇用的胜算呀!

在推文 《正则表达式之匹配汉字》 中,我们介绍了Unicode转义字符是以“\uXXXX”格式表示的字符,其中X为16进制数字,而 基本汉字 的unicode转义字符的范围为 \u4e00-\u9fa5 ,其基本上可以满足我们日常的需求。前不久,有粉丝朋友咨询怎么匹配除了基础汉字的 生僻字 ?接下来小编就给大家答疑解惑。

Unicode目前普遍采用的是 UCS-2 ,它用两个字节来编码字符,两个字节就是16位二进制,2的16次方等于65536,所以UCS-2最多能编码 65536个字符 ,其取值范围为 U+0000~U+FFFF 。经查阅,汉字unicode的编码范围如下图所示:

查阅汉字unicode编码表,我们可以发现,基本汉字字符集包含20902个汉字,对应Unicode编码范围为[4e00-9fa5]。我们知道Unicode转义字符可以直接用于正则表达式中,使用集合“ [\u4e00-\u9fa5] ”可以匹配 任意单个基础汉字 。同样的道理,按照上表给出的汉字的unicode编码范围,使用集合 [\u9fa6-\u9fef] 可以匹配 任意单个基本汉字补充 ;使用集合 [\u3400-\u4db5] 可以匹配 任意单个扩展A, 以此类推。下图为扩展A:

接着,我们对字符串“爬 虫 㐀 㐁 龦 龧”(为了使下边替换结果更加明显,在每一个汉字之间加一个空格)分别使用集合[\u4e00-\u9fa5]、[\u9fa6-\u9fef]、[\u3400-\u4db5]进行匹配:

·dis ustrregexra("爬 虫 㐀 㐁 龦 龧","[\u4e00-\u9fa5]","❤")

·dis ustrregexra("爬 虫 㐀 㐁 龦 龧","[\u9FA6-\u9FEF]","❤")

·dis ustrregexra("爬 虫 㐀 㐁 龦 龧","[\u3400-\u4DB5]","❤")

字符串“爬 虫 㐀 㐁 龦 龧”中,“爬虫”属于基本汉字、“㐀㐁”属于扩展A、“龦龧”属于基本汉字补充。以第三行程序为例,用集合[\u3400-\u4db5]进行匹配字符串“爬 虫 㐀 㐁 龦 龧”时,由于其可以匹配到任意单个扩展A,所以匹配结果为“㐀㐁”,并使用ustrregexra()函数将正则表达式匹配到的子字符串全部替换为字符“❤”。(Stata结果窗口无法正常显示扩展A、基本汉字补充等生僻汉字,但并不影响匹配结果)

例子—Unicode汉字与摩尔斯电码

现在有一个汉字字符串—“亶亷龭龮龯海㖃坵坶㦹㦺㦻銿鋀鋁㒡霩㥀鰌㯺㯻䚎䚏䚐龹鮫鮬䤟”。我们把属于基本汉字字符集的替换成“.”,属于基本汉字补充字符集的替换成空格,把属于扩展A字符集的替换成“-”。

clear
set obs 1gen text = "亶亷龭龮龯海㖃坵坶㦹㦺㦻銿鋀鋁㒡霩㥀鰌㯺㯻䚎䚏䚐龹鮫鮬䤟"
replace text= ustrregexra(text,"[\u4e00-\u9fa5]" ,".") replace text= ustrregexra(text,"[\u9FA6-\u9FEF]"," ") replace text= ustrregexra(text,"[\u3400-\u4DB5]","-") dis text

这样我们就生成了一个摩尔斯电码,感兴趣的读者,可运行上述程序得到这串电码,再去问度娘呀!(摩尔斯电码转换器:http://www.zhongguosou.com/zonghe/moErSiCodeConverter.aspx)当然,视力好的朋友,也可参见下表,自行解码:

注:此推文中的图片及封面(除操作部分的)均来源于网络!如有雷同,纯属巧合! 以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。另外,我们开通了苹果手机打赏通道,只要扫描下方的二维码,就可以打赏啦!
应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~




文字编辑:吴晓蔓

技术总编:刘贝贝

往期推文推荐:

1.爬虫俱乐部新版块--和我们一起学习Python

2.hello,MySQL--Stata连接MySQL数据库

3.hello,MySQL--odbcload读取MySQL数据

4.再爬俱乐部网站,推文目录大放送!

5.用Stata生成二维码—我的心思你来扫

6. Hello,MySQL-odbc exec查询与更新

7. Python第一天

8.Python第二天







请到「今天看啥」查看全文