R语言-正则表达式1
R语言的正则表达式主要用来处理文本资料,比如进行查找、替换等等。
首先是一些处理文本时会用到的函数:
字符串分割:strsplit()
字符串连接:paste(),paste0()
计算字符串长度:nchar(),length()
字符串截取:substr(),substring()
查看是否存在某个字符:grep(p,x) <返回匹配到的元素的下标(位置),p是一个正则表达式
grepl(p,x)<返回逻辑值false or true
举个栗子:
s<-c("123abc\\456","abc123edf")
grep("",s) #匹配“"的位置,返回元素的下标
grepl("xcd",s)#”“是否匹配成功,返回逻辑值
> grep("",s)
[]
> grepl("xcd",s)
[] FALSE FALSE
字符替换:sub(p,replace,x) <对查找到的第一个字符进行替换
gsub(p,replace,x) <对查找到的所有内容进行替换
eg:
s1<-c("123edf123")
sub("","sss",s1) #替换s1里""为“sss",注意:找到即停止
gsub("","sss",s1) #对找到的所有内容进行替换
> sub("","sss",s1)
[] "sssedf123"
> gsub("","sss",s1)
[] "sssedfsss"
____________________________________________________________________
下面介绍R语言里的正则表达式
直接用例子说明问题:
1、\d 是否匹配到任意一个数字
s3<-c("123abc\\456","abc123\\def123","")
grepl("\\d",s3) #是否匹配到任意一个数字
[1] TRUE TRUE
#等价于:
grepl("[0-9]",s3)
2、\D是否匹配到任意一个非数字
grepl("\\D",s3) #是否匹配到任意一个非数字
#等价于:
grepl("[^0-9]",s3) #^表示逻辑非
3、\w是否匹配到任何一个数字、字母、下划线
grepl("\\w",s3) #是否匹配到任何一个数字、字母、下划线
等价于:
grepl("[a-zA-Z0-9]",s3)
4、\W是否匹配到任何一个非数字、字母、下划线
grepl("\\W",s3)
5、\\ 转义
grepl("\\\\",s3) #是否匹配到\\
6、. 是否匹配到任意字符
grepl (".",s3)
7、| 表示或
grepl("56|ab",s) #是否匹配到“”或“ab"
8、^
grepl("^a",s3) #是否以a开头
9、$
grepl("6$",s3) #是否以6结尾
10、()
grepl("abc(.+)456",s3) #"abc"和""之间是否存在任意(.)大于等于1个(+)字符
11、[ ]
grepl("[123,456]",s3)
#等价于:
grepl("123|456",s3)
12、{ }
grepl("[def]{2}",s3) #"def"是否出现了不超过3次
13、*
grepl(".*",s3) #任意字符是否匹配0次以上,肯定返回true啦(包括空格)
14、+
grepl(".+",s3) #任意字符至少能匹配一次,空格返回FALSE
15、?
grepl("[456]?",s3) #匹配0次为true,匹配1次也为true
R语言-正则表达式1的更多相关文章
- R语言︱文本(字符串)处理与正则表达式
处理文本是每一种计算机语言都应该具备的功能,但不是每一种语言都侧重于处理文本.R语言是统计的语言,处理文本不是它的强项,perl语言这方面的功能比R不知要强多少倍.幸运的是R语言的可扩展能力很强,DN ...
- R语言:文本(字符串)处理与正则表达式
R语言:文本(字符串)处理与正则表达式 (2014-03-27 16:40:44) 转载▼ 标签: 教育 分类: R 处理文本是每一种计算机语言都应该具备的功能,但不是每一种语言都侧重于处理文本.R语 ...
- R语言中的正则表达式(转载:http://blog.csdn.net/duqi_yc/article/details/9817243)
转载:http://blog.csdn.net/duqi_yc/article/details/9817243 目录 Table of Contents 1 正则表达式简介 2 字符数统计和字符翻译 ...
- R语言爬虫初尝试-基于RVEST包学习
注意:这文章是2月份写的,拉勾网早改版了,代码已经失效了,大家意思意思就好,主要看代码的使用方法吧.. 最近一直在用且有维护的另一个爬虫是KINDLE 特价书爬虫,blog地址见此: http://w ...
- R语言-用R眼看琅琊榜小说的正确姿势
博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html 目录: 零:写在前面的一些废话 一.R眼看琅琊榜的基本原理 1.导入数据 2.筛选数据 3.多条 ...
- R语言:用简单的文本处理方法优化我们的读书体验
博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html 前言 延续之前的用R语言读琅琊榜小说,继续讲一下利用R语言做一些简单的文本处理.分词的事情.其实 ...
- R语言实战(二)数据管理
本文对应<R语言实战>第4章:基本数据管理:第5章:高级数据管理 创建新变量 #建议采用transform()函数 mydata <- transform(mydata, sumx ...
- R语言学习笔记:字符串处理
想在R语言中生成一个图形文件的文件名,前缀是fitbit,后面跟上月份,再加上".jpg",先不百度,试了试其它语言的类似语法,没一个可行的: C#中:"fitbit&q ...
- 笔记整理——Linux下C语言正则表达式
Linux下C语言正则表达式使用详解 - Google Chrome (2013/5/2 16:40:37) Linux下C语言正则表达式使用详解 2012年6月6日Neal627 views发表评论 ...
随机推荐
- Python学习---django之admin简介
Django之admin简介 参考文献:http://www.admin10000.com/document/2220.html Djaogo为什么url可以匹配url.py里面的路径呢? 我们打 ...
- Linux 下Discuz论坛的搭建
Discuz论坛的搭建[基于LNMP环境搭建成功后] ##创建BBS数据库在本地/远程服务器 mysql -uroot -proot create database bbs; show databas ...
- magento2常见的命令
常见的命令如下: php bin/magento list 查看所有命令列表 ----------------------------moudule相关的参数------------------ ...
- 初始python(二)
1. 列表list 1.1 切片# 定义一个list.list = [1, 2, 3, 4, 5] 从左往右读取字符(默认步长为 1 ).如:list[-2:-1] # 返回一个list数据类型,[ ...
- loadrunner测试c/s架构的应用系统
用LoadRunner测试c/s架构的软件,怎样去选择协议,困扰了我很久,看到这篇文章,感觉有点收获,所以特意转了过来,希望对大家有用. 首先,什么是协议?协议无非就是一个约定,关于数据包发送的格式的 ...
- 深入浅出SharePoint2013——使用沙箱解决方案
启用“Microsoft SharePoint Foundation Sandboxed Code Service”后,我们就可以使用Sandboxed solution了.
- 51nod 1102 面积最大的矩形
题目地址在这儿 求取:以某矩形g[i]为最小值的区间的左右端点,得到一个临时解.所有临时解中的最大值即为解. 求取区间的方法可以用单调栈,也可以用下面这种十分简洁的类似于递归的方法.下面这种解法求出来 ...
- LINQ入门与标准查询运算符
LINQ的体系结构 查询表达式的完整语法 一.查询表达式必须以from子句开头,以select 或group子句结束.中间可以使用where,orderby ,join,let和其他子句.具有“延迟计 ...
- Hadoop学习之路(二十一)MapReduce实现Reduce Join(多个文件联合查询)
MapReduce Join 对两份数据data1和data2进行关键词连接是一个很通用的问题,如果数据量比较小,可以在内存中完成连接. 如果数据量比较大,在内存进行连接操会发生OOM.mapredu ...
- G、CSL 的训练计划【BFS 贪心】(“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)
题目传送门:https://ac.nowcoder.com/acm/contest/551/G 链接:https://ac.nowcoder.com/acm/contest/551/G来源:牛客网 题 ...