其他
正则表达式匹配中文
Try to learn everything about something!
正则表达式绝对是让我又爱又恨的东西,一方面因为它太强大了,当其他函数都解决不了的时候我总会用到它,好好利用还能明显简化代码,实在是神器;另一方面它太难记了!!我现在还是记不住,只能每次都翻笔记!
由于经常要用到中文的资料,所以用正则表达式提取中文是非常常见操作。
今天给大家介绍几种匹配中文字符的方法!超级实用哦!
首先编一个字符串:
df <- c("123,,这是中文字符,,English。。你好","午后奶茶ACD,。哈哈%")
使用stringr
包进行演示。str_match_all()
的用法大家自己了解哦!
library(stringr)
接下来请看我的表演!
# 方法1
str_match_all(df,"[\u4e00-\u9fa5]")
## [[1]]
## [,1]
## [1,] "这"
## [2,] "是"
## [3,] "中"
## [4,] "文"
## [5,] "字"
## [6,] "符"
## [7,] "你"
## [8,] "好"
##
## [[2]]
## [,1]
## [1,] "午"
## [2,] "后"
## [3,] "奶"
## [4,] "茶"
## [5,] "哈"
## [6,] "哈"
# 方法2
str_match_all(df,"[\\p{Han}]")
## [[1]]
## [,1]
## [1,] "这"
## [2,] "是"
## [3,] "中"
## [4,] "文"
## [5,] "字"
## [6,] "符"
## [7,] "你"
## [8,] "好"
##
## [[2]]
## [,1]
## [1,] "午"
## [2,] "后"
## [3,] "奶"
## [4,] "茶"
## [5,] "哈"
## [6,] "哈"
# 方法3
str_match_all(df,"[一-龥]")
## [[1]]
## [,1]
## [1,] "这"
## [2,] "是"
## [3,] "中"
## [4,] "文"
## [5,] "字"
## [6,] "符"
## [7,] "你"
## [8,] "好"
##
## [[2]]
## [,1]
## [1,] "午"
## [2,] "后"
## [3,] "奶"
## [4,] "茶"
## [5,] "哈"
## [6,] "哈"
# 方法4,可以匹配3500常用汉字,和7000通用汉字,“龠”匹配不到
str_match_all(df,"[一-龟]")
## [[1]]
## [,1]
## [1,] "这"
## [2,] "是"
## [3,] "中"
## [4,] "文"
## [5,] "字"
## [6,] "符"
## [7,] "你"
## [8,] "好"
##
## [[2]]
## [,1]
## [1,] "午"
## [2,] "后"
## [3,] "奶"
## [4,] "茶"
## [5,] "哈"
## [6,] "哈"
# 方法5 可以匹配全角字符,包括汉字和标点
str_match_all(df,"[^\\x00-\\xff]")
## [[1]]
## [,1]
## [1,] ","
## [2,] ","
## [3,] "这"
## [4,] "是"
## [5,] "中"
## [6,] "文"
## [7,] "字"
## [8,] "符"
## [9,] "。"
## [10,] "。"
## [11,] "你"
## [12,] "好"
##
## [[2]]
## [,1]
## [1,] "午"
## [2,] "后"
## [3,] "奶"
## [4,] "茶"
## [5,] ","
## [6,] "。"
## [7,] "哈"
## [8,] "哈"
是不是很方便,很强大呢?
活到老学到老!
以上就是今天的内容,希望对你有帮助哦!欢迎点赞、在看、关注、转发!
欢迎在评论区留言或直接添加我的微信!
欢迎关注公众号:医学和生信笔记
“医学和生信笔记 公众号主要分享:1.医学小知识、肛肠科小知识;2.R语言和Python相关的数据分析、可视化、机器学习等;3.生物信息学学习资料和自己的学习笔记!
往期回顾
R语言和网络药理学:批量处理ETCM的数据
我的个人博客上线了!
R语言和医学统计学(合辑)
R语言机器学习R包:mlr3(合辑)