常见与正则表达式相关的函数:

grep(pattern, x, ignore.case = FALSE, perl = FALSE, value = FALSE,
fixed = FALSE, useBytes = FALSE, invert = FALSE) grepl(pattern, x, ignore.case = FALSE, perl = FALSE,
fixed = FALSE, useBytes = FALSE) sub(pattern, replacement, x, ignore.case = FALSE, perl = FALSE,
fixed = FALSE, useBytes = FALSE) gsub(pattern, replacement, x, ignore.case = FALSE, perl = FALSE,
fixed = FALSE, useBytes = FALSE) regexpr(pattern, text, ignore.case = FALSE, perl = FALSE,
fixed = FALSE, useBytes = FALSE) gregexpr(pattern, text, ignore.case = FALSE, perl = FALSE,
fixed = FALSE, useBytes = FALSE) regexec(pattern, text, ignore.case = FALSE, perl = FALSE,
fixed = FALSE, useBytes = FALSE)

这里是对参数进行一个解释说明。

参数

说明

pattern

正则表达式

x, text

字符向量或字符对象,在R 3.0.0后版本中,最大支持超过2^31个的字符元素。

ignore.case

默认FALSE,表示区分大小写,TRUE时表示不区分大小写。

perl

是否使用Perl兼容的正则表达式

value

默认为FALSE,当查找到时返回1,否则返回0;当为TRUE查找到时返回整个x,text,否则返回0。

fixed

如果为TRUE,pattern是要匹配的字符串。覆盖所有冲突的参数

useBytes

默认为false,当为true时,则是逐字节逐字节匹配而不是逐字符逐字符匹配。

invert

如果TRUE返回不匹配的元素的索引或值。

replacement

如果查找到之后,进行替换,若没有找到,则返回x,text值

函数

作用

grep()

查找,存在参数value,返回结果是匹配项的下标

grepl()

查找,返回值为true

sub()

只对查找到的第一个内容进行替换。(同下)

gsub()

对查找到的所有内容进行替换,返回替换后的text;否则直接返回text

regexpr()

返回一个与给出第一个匹配的起始位置的文本长度相同的整数向量,如果没有则返回-1, “match.length”给出匹配文本长度的整数向量(或-1)。匹配位置和长度为字符。

除了regexec,目前不支持Perl风格()的正则表达式。

。useBytes的主要效果是避免关于多字节语言环境中的无效输入和伪匹配的错误/警告,但对于regexpr,它会更改输出的解释。它禁止具有标记编码的输入的转换,并且如果发现任何输入被标记为“字节”,则被强制参见编码)。

无关匹配对多字节语言环境中的字节没有多大意义,如果useBytes = TRUE,您应该希望它只适用于ASCII字符。

regexpr和gregexpr与perl = TRUE允许Python风格的命名捕获,但不是长矢量输入。

当前语言环境中的无效输入最多警告5次。

对于非ASCII字符,与PERL = TRUE的无符号匹配取决于使用“Unicode属性支持”编译的PCRE库:外部库可能不是。

如果你正在做很多的正则表达式匹配,包括非常长的字符串,通常将正则表达式引擎设为PCRE,这将将比默认正则表达式引擎快,而fixed = TRUE更快(特别是当每个模式只匹配几次时)。

gregexpr()

返回一个与文本长度相同的列表,每个元素的格式与regexpr的返回值相同,除了给出了每个(不相交)匹配的起始位置。

regexec()

返回与文本相同长度的列表,如果没有匹配,则返回-1,或者具有匹配的起始位置的整数序列和对应于模式的括号子表达式的所有子串,其中属性“match .length“给出匹配长度的向量(或没有匹配的-1)。

正则表达式转义字符
空白元字符 [\b] 回退(并删除)一个字符(backspace)
\f 换页符
\n 换行符
\r 回车符
\t 制表符(tab)
\v 垂直制表符
注:\r\n是windows所用的文本行结束符,Unix和Linux只是用一个换行符来结束一个文本行
匹配数字与非数字 \d 任何一个数字字符,等价于[0-9]
\D 任何一个非数字字符,等价于^[0-9]
匹配字母\非字母与数字 \w 任何一个字母数字字符(大小写均可以)或下划线字符(等价于[a-zA-Z0-9])
\W 任何一个非字母数字或下划线字符(等价于[^a-zA-Z0-9])
匹配空白字符 \s 任何一个空白字符(等价于[\f\n\r\t\v])
\S 任何一个非空白字符(等价于[^\f\n\r\t\v])
POSIX字符类 [:alnum:] 任何一个字母或数字(等价于[a-ZA-Z0-9])
[:alpha:] 任何一个字母(等价于[a-ZA-Z])
[:blank:] 空格或制表符(等价于[\t ])    注:t后面有一个空格
[:cntrl:] ASCII控制字符(ASCII 0到31,再加上ASCII 127)
[:digit:] 任何一个数字(等价于[0-9])
[:graph:] 和[:print:]一样,但不包括空格
[:lower:] 任何一个小写字母(等价于[a-z])
[:print:] 任何一个可打印字符
[:punct:] 既不属于[:alnum:],也不属于[:cntrl:]的任何一个字符
[:space:] 任何一个空格字符,包括空格(等价于[f\n\r\t\v ] 注:v后面有一个空格
[:upper:] 任何一个大写字母(等价于[A-Z])
[:xdigit:] 任何一个十六进制数字(等价于[a-fA-F0-9])
其他 . 可以匹配任何单个的字符字母数字甚至.字符本身。同一个正则表达式允许使用多个.字符。但不能匹配换行
\\ 转义字符,如果要匹配就要写成“\\(\\)”
| 表示可选项,即|前后的表达式任选一个
^ 取非匹配
$ 放在句尾,表示一行字符串的结束
() 提取匹配的字符串,(\\s*)表示连续空格的字符串
[] 选择方括号中的任意一个(如[0-2]和[012]完全等价,[Rr]负责匹配字母R和r)
{} 前面的字符或表达式的重复次数。如{5,12}表示重复的次数不能小于5,不能多于12,否则都不匹配
* 匹配零个或任意多个字符或字符集合,也可以没有匹配
+ 匹配一个或多个字符,至少匹配一次
? 匹配零个或一个字符

R语言之正则表达式的更多相关文章

  1. R语言-正则表达式1

    R语言的正则表达式主要用来处理文本资料,比如进行查找.替换等等. 首先是一些处理文本时会用到的函数: 字符串分割:strsplit() 字符串连接:paste(),paste0() 计算字符串长度:n ...

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

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

  3. R语言中文社区历史文章整理(类型篇)

    R语言中文社区历史文章整理(类型篇)   R包: R语言交互式绘制杭州市地图:leafletCN包简介 clickpaste包介绍 igraph包快速上手 jiebaR,从入门到喜欢 Catterpl ...

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. django admin 处理文本换行空格

    使用 linebreaks filter <p>{{ blogpassage.content|linebreaksbr }}<p>

  2. html5-样式的三种方式

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  3. 列表选择模式:单选、按shift、按shift或ctrl

    2018-10-29 21:23:16 开始写 import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing ...

  4. 关于SQL语句中的distinct和group by

    两种都能实现去重功能.区别: distinct只是将重复的行从结果中出去: group by是按指定的列分组,一般这时在select中会用到聚合函数. distinct是把不同的记录显示出来 grou ...

  5. Java技术整理1---反射机制及动态代理详解

    1.反射是指在程序运行过程中动态获取类的相关信息,包括类是通过哪个加载器进行加载,类的方法和成员变量.构造方法等. 如下示例可以通过三种方法根据类的实例来获取该类的相关信息 public static ...

  6. RocketMQ 顺序消费只消费一次 坑

    rocketMq实现顺序消费的原理 produce在发送消息的时候,把消息发到同一个队列(queue)中,消费者注册消息监听器为MessageListenerOrderly,这样就可以保证消费端只有一 ...

  7. How to use CAR FANS C800 Diagnostic Scan Tool to do diagnosis operation

    How to use Heavy Duty Diagnostic CAR FANS C800 Diagnostic Scan Tool to do diagnosis operation Here i ...

  8. kali linux中文输入法

    kali linux中文输入法 已经使用kali linux有一段时间来,越用越喜欢,真的奥! 最近又有宝宝问我kali linux的中文输入法,鉴于当初在坑里蹲了很长时间,还是记录一下吧! The ...

  9. PID控制器开发笔记(转)

    源: PID控制器开发笔记

  10. php 一个文件搞定支付宝支付,微信支付

    博客:https://me.csdn.net/jason19905 支付宝支付:https://github.com/dedemao/alipay 微信支付:https://github.com/de ...