首页 > > > R语言正则表达式:反向引用
作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(R),致力于利用数据科学迅速积累行业经验优势和科学知识发现,涉猎内容包括但不限于信息计量、机器学习、数据可视化、应用统计建模、知识图谱等,著有《R语言数据高效处理指南》(《R语言数据高效处理指南》(黄天元)【摘要 书评 试读】- 京东图书,《R语言数据高效处理指南》(黄天元)【简介_书评_在线阅读】 - 当当图书)。知乎专栏:R语言数据挖掘。邮箱:huang.tian-yuan@qq.com.欢迎合作交流。
反斜杠在R语言正则表达式中一般用来转义,但是其实可以用来做反向引用。下面举例说明:我们想获得句子中所有叠字的名称,句子为“请储婷婷、魏香香、龚菲菲、高圆圆、徐天天、欧阳娜娜同学到台上来。”
library(tidyverse)
string = "请储婷婷、魏香香、龚菲菲、高圆圆、徐天天、欧阳娜娜同学到台上来。"
str_extract_all(string,"(.)\\1") %>% unlist()
[1] "婷婷" "香香" "菲菲" "圆圆" "天天" "娜娜"如果需要获得三字名称,并包含姓氏,可以尝试:
str_extract_all(string,"(.)(.)\\2") %>% unlist()
[1] "储婷婷" "魏香香" "龚菲菲" "高圆圆" "徐天天" "阳娜娜"比较遗憾的是,四字是无法识别的,错误识别为“阳娜娜”。这是一个没有办法的事情,但是我们知道这种反向引用在一些场景中是非常实用的,最多能够标记到9个分组(也就是\\9),基本够用了。
原文作者:;如有侵权,请联系管理员删除。