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的更多相关文章

  1. R语言︱文本(字符串)处理与正则表达式

    处理文本是每一种计算机语言都应该具备的功能,但不是每一种语言都侧重于处理文本.R语言是统计的语言,处理文本不是它的强项,perl语言这方面的功能比R不知要强多少倍.幸运的是R语言的可扩展能力很强,DN ...

  2. R语言:文本(字符串)处理与正则表达式

    R语言:文本(字符串)处理与正则表达式 (2014-03-27 16:40:44) 转载▼ 标签: 教育 分类: R 处理文本是每一种计算机语言都应该具备的功能,但不是每一种语言都侧重于处理文本.R语 ...

  3. R语言中的正则表达式(转载:http://blog.csdn.net/duqi_yc/article/details/9817243)

    转载:http://blog.csdn.net/duqi_yc/article/details/9817243 目录 Table of Contents 1 正则表达式简介 2 字符数统计和字符翻译 ...

  4. R语言爬虫初尝试-基于RVEST包学习

    注意:这文章是2月份写的,拉勾网早改版了,代码已经失效了,大家意思意思就好,主要看代码的使用方法吧.. 最近一直在用且有维护的另一个爬虫是KINDLE 特价书爬虫,blog地址见此: http://w ...

  5. R语言-用R眼看琅琊榜小说的正确姿势

    博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html 目录: 零:写在前面的一些废话 一.R眼看琅琊榜的基本原理 1.导入数据 2.筛选数据 3.多条 ...

  6. R语言:用简单的文本处理方法优化我们的读书体验

    博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html 前言 延续之前的用R语言读琅琊榜小说,继续讲一下利用R语言做一些简单的文本处理.分词的事情.其实 ...

  7. R语言实战(二)数据管理

    本文对应<R语言实战>第4章:基本数据管理:第5章:高级数据管理 创建新变量 #建议采用transform()函数 mydata <- transform(mydata, sumx ...

  8. R语言学习笔记:字符串处理

    想在R语言中生成一个图形文件的文件名,前缀是fitbit,后面跟上月份,再加上".jpg",先不百度,试了试其它语言的类似语法,没一个可行的: C#中:"fitbit&q ...

  9. 笔记整理——Linux下C语言正则表达式

    Linux下C语言正则表达式使用详解 - Google Chrome (2013/5/2 16:40:37) Linux下C语言正则表达式使用详解 2012年6月6日Neal627 views发表评论 ...

随机推荐

  1. PetaPoco轻量级ORM框架 - Database API 手册

    PetaPoco Database API #region IDisposable public void Dispose() #endregion #region Constructors publ ...

  2. java一些使用

    随机数.输入.byte数组和string转换 一些可能会使用到的方法.供及时查找 ########################random类使用 Random random = new Rando ...

  3. linux性能系列--内存

    一.啥是内存呢? 回答:内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁.计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大. 内存(Memory)也被称为内存储器, ...

  4. 匹配IP的正则表达式

    正则表达式匹配IP 1 ((25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.){3}(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|[1-9])  

  5. linux服务器部署nodejs项目

    一.安装nodejs 1.去官网下载和自己系统匹配的文件: 英文网址:https://nodejs.org/en/download/ 中文网址:http://nodejs.cn/download/ 通 ...

  6. SoapUI这么好,舍得不用吗?

    之前尝试去学习哈SoapUI, 安装都报错,直接拖黑不用,对java开发的产品本身不感冒 后来工作上,和老外沟通,发现他们不会用xmlspy,只会SoapUI,心里都想,不学习看来不方便,然后都安装了 ...

  7. 面经:C++篇(持续更新)

    一. 左值和右值 L-value中的L指的是Location,表示可寻址.Avalue (computer science)that has an address. R-value中的R指的是Read ...

  8. Kali-linux使用Easy-Creds工具攻击无线网络

    Easy-Creds是一个菜单式的破解工具.该工具允许用户打开一个无线网卡,并能实现一个无线接入点攻击平台.Easy-Creds可以创建一个欺骗访问点,并作为一个中间人攻击类型运行,进而分析用户的数据 ...

  9. leaflet 中文API

    LeafLet js 官网:http://leafletjs.com/index.html LeafLet js 官网demo: http://leafletjs.com/examples.html ...

  10. C/C++结构体字节对齐详解

    结构体的sizeof先看一个结构体:struct S1{    char c;    int i;}; sizeof(S1)在VC6中按默认设置得到的结果为8.我们先看看sizeof的定义——size ...