R语言之正则表达式
常见与正则表达式相关的函数:
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语言之正则表达式的更多相关文章
- R语言-正则表达式1
R语言的正则表达式主要用来处理文本资料,比如进行查找.替换等等. 首先是一些处理文本时会用到的函数: 字符串分割:strsplit() 字符串连接:paste(),paste0() 计算字符串长度:n ...
- R语言-用R眼看琅琊榜小说的正确姿势
博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html 目录: 零:写在前面的一些废话 一.R眼看琅琊榜的基本原理 1.导入数据 2.筛选数据 3.多条 ...
- R语言中文社区历史文章整理(类型篇)
R语言中文社区历史文章整理(类型篇) R包: R语言交互式绘制杭州市地图:leafletCN包简介 clickpaste包介绍 igraph包快速上手 jiebaR,从入门到喜欢 Catterpl ...
- 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语言:用简单的文本处理方法优化我们的读书体验
博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html 前言 延续之前的用R语言读琅琊榜小说,继续讲一下利用R语言做一些简单的文本处理.分词的事情.其实 ...
- R语言实战(二)数据管理
本文对应<R语言实战>第4章:基本数据管理:第5章:高级数据管理 创建新变量 #建议采用transform()函数 mydata <- transform(mydata, sumx ...
随机推荐
- Java多线程-----匿名内部类创建线程
1.继承Thread类创建线程 package com.practise.createthread; public class AnonymousThread { public static v ...
- OC 反射-->动态创建类
系统方法 NSLog(@"%s", __func__); //打印出类的方法名称,如: //打印结果:2018-02-22 10:52:15.394575+0800 DemoRun ...
- hashcat 中文文档
hashcat 描述 hashcat是世界上最快,最先进的密码恢复工具. 此版本结合了以前基于CPU的hashcat(现在称为hashcat-legacy)和基于GPU的oclHashcat. H ...
- LinkedList 底层实现原理
LinkedList的底层实现原理 LinkedList 底层数据结构为双向链表,链表结构,基于一个个链表节点Node 1,Inner Class 内部类 private static class N ...
- linux常用命令:cd 命令
Linux cd 命令可以说是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的.所以,学习Linux 常用命令,首先就要学好 cd 命令的使用方法技巧. 1. 命 ...
- 在Eclipse下配置算法(第四版)运行环境
第一步:配置Eclipse运行环境 Eclipse运行环境配置过程是很简单的,用过Eclipse进行java开发或学习的同学应该都很熟悉这个过程了. 配置过程: (1)系统环境:Windows7 64 ...
- GIT库代码管理规范
GIT库代码管理规范 一. 规范要求 1. 每个项目建立单独的GIT库.每个GIT库包括两条线,命名规则如下: 开发线(测试):项目名称_DEV 生产线(正式):项目名称 2. 每条线只允许增量不允许 ...
- 转:wcf大文件传输解决之道(1)
首先声明,文章思路源于MSDN中徐长龙老师的课程整理,加上自己的一些心得体会,先总结如下: 在应对与大文件传输的情况下,因为wcf默认采用的是缓存加载对象,也就是说将文件包一次性接受至缓存中,然后生成 ...
- vue之component
因为组件是可复用的 Vue 实例,所以它们与 new Vue 接收相同的选项,例如 data.computed.watch.methods 以及生命周期钩子等.仅有的例外是像 el 这样根实例特有的选 ...
- 介绍Python中6个序列的内置类型
1.Python中6个序列的内置类型分别是什么? Python包含6中内建的序列,即列表.元组.字符串.Unicode字符串.buffer对象和 xrange 对象.序列通用的操作包括:索引.长度.组 ...