加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

R语言之——正则表达式

发布时间:2020-12-14 01:23:40 所属栏目:百科 来源:网络整理
导读:定义 正则表达式 是对字符串操作的一种逻辑公式。 作用对象 正则表达式的作用对象是 文本 。 作用 *逻辑过滤 *精准抓取 特点 灵活性、逻辑性和功能性非常强 可以迅速地、用极简单的方式达到字符串的复杂控制 语法规则 转义字符 . 除了换行以外的任意字符 ^

定义

正则表达式是对字符串操作的一种逻辑公式。

作用对象

正则表达式的作用对象是文本

作用

*逻辑过滤
*精准抓取

特点

  1. 灵活性、逻辑性和功能性非常强
  2. 可以迅速地、用极简单的方式达到字符串的复杂控制

语法规则

转义字符
. 除了换行以外的任意字符
^ 放在句首,表示一行字符串的起始
$ 放在句尾,表示一行字符串的结束
* 零个或者多个之前的字符
+ 一个或者多个之前的字符
? 零个或者一个之前的字符

方括号[],代表可以匹配其中任何一个字符。而^在[]中代表“非”,-代表“之间”
– [qjk]:q,j,k中任意一个字符
– [^qjk]:非q,k的任意其它字符
– [a-z]:a至z中任意一个小写字符
– [^a-z]: 非任意一个a至z小写字符的其它字符(可以是大写字符)
– [a-zA-Z]:任意一个英文字母
– [a-z]+: 一个或者多个小写英文字母

| 或者
小括号()与花括号{}配合“|”使用
特别注意:保留字符都需要转义字符 来转义表示
例如:
常用的特殊转义字符含义
? n:换行符
? t:tab
? w:任意字母(包括下划线)或者数字 即 [a-zA-Z0-9_]
? W:w的反义 即[^a-zA-Z0-9_]
? d:任意一个数字 即[0-9]
? D:d的反义 即[^0-9]
? s:任意一个空格,比如space,tab,newline 等
? S:s的反义,任意一个非空格

正则表达式的常用函数

? grepl:返回一个逻辑值
? grep:返回匹配的id,
? agrep:返回匹配的id,
? 正则替换:sub和gsub
两者的区别如下

# 将b替换为B
gsub(pattern = "b",replacement = "B",x = "baby")
[1] "BaBy"

gsub(pattern = "b",x = c("abcb","boy","baby"))
[1] "aBcB" "Boy"  "BaBy"

# 只替换第一个b
sub(pattern = "b",x = "baby")
[1] "Baby"

sub(pattern = "b","baby"))
[1] "aBcb" "Baby"

? regexpr:返回一个数字,1表示匹配,-1表示不匹配,以及两个属性,匹配 的长度和是否使用useBytes ? regexec:返回一个list,字符串中第一个匹配及其长度以及是否使用useBytes ? gregexpr:返回一个list,每一个匹配及其长度以及是否使用useBytes

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读