r语言正则表达式(r语言正则表达式提取)

本篇文章给大家谈谈r语言正则表达式,以及r语言正则表达式提取对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

R 函数笔记 | grep()函数与R语言中的正则表达式

grep()能对向量中特定条件的元素进行查询,默认return为index。grep()语法与grep()大致相似,但默认return为logical。

默认情况下是匹配尽可能多的字符,是为贪婪匹配,比铅毁如sub("a. b","",c("aabab","eabbe")),默认匹配最长的a开头b结尾的字串,也就是整个字符串。如果要进槐迅备行懒惰匹配,也就是匹配最短的字串,只需昌森要在后面加个“?”,比如sub("a. ?b","",c("aabab","eabbe")),就会匹配最开始找到的最短的a开头b结尾的字串。

R语言学习之数据的清理和转化

R语言学习之数据的清理和转化

处理字符串

grep grepl 和regexpr函数都能裂梁找到与模式相匹配的字符串 sub 和 gsub函数能替换匹配的字符串

加载strngr包,fixed里面为要匹配的字符串 返回匹配的字符串序列

[plain] view plain copy

肆困运 library(stringr)

multiple - str_detect(english_monarchs$domain,fixed(","))

english_monarchs[multiple,c("name","domain")]

name domain

17 Offa East Anglia, Mercia

18 Offa East Anglia, Kent, Mercia

19 Offa and Ecgfrith East Anglia, Kent, Mercia

20 Ecgfrith East Anglia, Kent, Mercia

22 CU+009Cnwulf East Anglia, Kent, Mercia

23 CU+009Cnwulf and Cynehelm East Anglia, Kent, Mercia

24 CU+009Cnwulf East Anglia, Kent, Mercia

25 Ceolwulf East Anglia, Kent, Mercia

26 Beornwulf East Anglia, Mercia

82 Ecgbehrt and U+00C6thelwulf Kent, Wessex

83 Ecgbehrt and U+00C6thelwulf Kent, Mercia, Wessex

84 Ecgbehrt and U+00C6thelwulf Kent, Wessex

85 U+00C6thelwulf and U+00C6eelstan I Kent, Wessex

86 U+00C6thelwulf Kent, Wessex

87 U+00C6thelwulf and U+00C6eelberht III Kent, Wessex

88 U+00C6eelberht III Kent, Wessex

89 U+00C6thelred I Kent, Wessex

95 Oswiu Mercia, Northumbria

使用正则表达式来匹配多个尺吵要匹配的字符串,这是来匹配逗号和and

[plain] view plain copy

ruler - str_detect(english_monarchs$name,",|and")

english_monarchs[ruler !is.na(ruler)]

把name一列拆分掉,则可以使用str_splist函数

[plain] view plain copy

indival - str_split(english_monarchs$name,",|and")

head(indival[sapply(indival,length)1])

[[1]]

[1] "Sigeberht " " Ecgric"

[[2]]

[1] "Hun" " Beonna " " Alberht"

[[3]]

[1] "Offa " " Ecgfrith"

[[4]]

[1] "Cu009cnwulf " " Cynehelm"

[[5]]

[1] "Sighere " " Sebbi"

[[6]]

[1] "Sigeheard " " Swaefred"

st_count是用来统计有多少个字符串

[plain] view plain copy

str_count(english_monarchs$name,th)

str_replace函数来代替字符串中的某一个

ignore.case来忽略某一个字符或字符串

正则表达式(stringr包)

. \ | ( ) [ ] ^ $ * + ?

数量词: * + ? {m} {m,n} {m,}

stringr包里面的函数主要分为 6大类 ,包括:

接下来,我们将逐个演示这些函数的使用方法。

str_detect 可以检测pattern是否包括在某个字符串中,并返回TRUE和FALSE

str_count 检测pattern是否包括在某个字符串中的数目

str_which 告诉pattern的索引位置

str_locate 和 str_locate_all 返回pattern的开始和终止位置;

区别是 str_locate 只返回字符串里面的 首个匹配 到的pattern;

str_locate_all 返回字符串里面的 所有匹配 到的pattern;

str_view 和 str_view_all 函数都可以以可视化的方式,返回字符串中匹配到的pattern;

str_sub 在给定起始和终止参数的基础上对字符串进行截取或者替换

str_subset 返回pattern所在的字符串

str_extract 函数返回每个字符串中穗手皮首个匹配到的pattern

str_extract_all 函数返回每个字符串中所有匹配到的pattern str_extract_all 函数中 simplify 默认为False,默认返回list;当 simplify 为True,则返回matrix

str_match 函数返回每个字符串猜差中首个匹配到的pattern,以matrix的形式呈现

str_match_all 函数返回每个字符串中所有匹配到的pattern,以list的形式呈现

str_length 函数可以计算字符串的长度

str_pad 函数可以填充字符薯扮

str_trim 函数去除字符串的空白部分

str_squish 函数作用和 str_trim 函数作用一致,但除了去除字符串前、后的空格,它还可以去除字符串中间出现的重复的空格。这一点上, str_trim 函数无法办到。

str_trunc 函数可以把字符串切割到指定长度

str_replace 函数可以替换pattern为新的字符,仅限于第一个匹配到的

str_replace_all 函数可以替换所有匹配到的pattern

str_replace_na 可以将缺失值替换成‘NA’,这样na.omit函数就无法将缺失值删除了

在 str_replace 和 str_replace_all 函数中,replacement可以用\1, \2中表示模式中的捕获

str_to_upper 函数可以将小写字母转成大写字母

str_to_lower 函数可以将大写字母转成小写字母

str_remove 可以移除字符串中首个匹配到的pattern

str_remove_all 可以移除字符串中所有匹配到的pattern

str_c 函数可以拼接多个字符串

str_dup 函数可以复制字符串

str_split 按照pattern分割字符串

str_split_fixed 按照pattern将字符串分割成指定个数

str_order 函数和 str_sort 函数都可以对字符串进行排序,两者之前的区别在于 前者返回排序后的索引(下标),而后者返回排序后的实际值 。

R 正则表达式

R语言与正则表达式

原来是它!正则表达式揪出生信分析中没有报错的内鬼错误

R语言教程

R for Data Science

[img]

R语言正则表达式?

首先你要知道正则表达式怎么写,如果你的a变量第一个字符是字母那你就写gsub(“^\w”,“”,text);如果你的a变量第孝闭做一个字符是数字那就写gsub(“^\d”,“”,text);如果第一个字符即可能是数字也可能态郑是字母那就写gsub(“^[0-9a-zA-Z]”,“”,text)。如果第一个字符是中文,你去搜一下中文的正巧衡则表达式,再替换之即可。

请问怎么用R语言正则表达式统计文章的单词数和中文字数,不能用程序包?

首先声明,用R来处理字符串数据并不是一个很好的选择,还是推荐使用Perl或者Python等语言。不过R本身除了提供了一些常用的字符串处理函数,也对正则表达式有了一定的支持,具体各个函数的使用方法还是要参考R的帮助文祥链档。

sub()与gsub()使用正则表达式对字符串进行替换。

grep()、regexpr()、gregexpr()都是用于正则表达式的匹配,只是返回的结果格式有些不同。

几个函数的使用格式如下:

grep(pattern, x, ignore.case = FALSE, extended = TRUE,

perl = FALSE, value = FALSE, fixed = FALSE, useBytes = FALSE)

regexpr(pattern, text, ignore.case = FALSE, extended = TRUE,

perl = FALSE, fixed = FALSE, useBytes = FALSE)

gregexpr(pattern, text, ignore.case = FALSE, extended = TRUE,

perl = FALSE, fixed = FALSE, useBytes = FALSE)

sub(pattern, replacement, x,

ignore.case = FALSE, extended = TRUE, perl = FALSE,

fixed = FALSE, useBytes = FALSE)

gsub(pattern, replacement, x,

ignore.case = FALSE, extended = TRUE, perl = FALSE,

fixed = FALSE, useBytes = FALSE)

其中参数pattern表示用于匹配的正则表达式模式;参数x和text表示用于搜索的字符串向量;参数ignore.case为FALSE时,表示模式匹配是对字母的大小写敏感;参数VALUE也是一个逻辑变量,若为FALSE,grep函谨凯孙数会返回一个由匹配元素所在的位置组成的向量,若为TRUE,则返回由匹配元素本身组成的向量;参数replacement只在函数sub和gsub中出现,用于进行替换,如果fixed=FALSE,可通过\1,...,\9来回溯引用匹配模式中由括号括起来的子表达式。如果参数perl=TRUE,还可以通过\U或\L将匹配字符转换成大写或小写。

一些示例代码:

grep("[a-z]", letters)

[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

[25] 25 26

#参数value的使用

grep("[a-z]", letters,value=TRUE)

[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r"

[19] "s" "t" "u" "v" "w" "x" "y" "z"

#将字符串的首字母转换为大写

gsub("^(\\w)", "\\U\\1", "a test of capitalizing", perl=TRUE)

[1] "A test of capitalizing"

#将字符串中每个单词的首字母转换为大写

gsub("\\b(\\w)", "\\U\\1"孙蔽, "a test of capitalizing", perl=TRUE)

[1] "A Test Of Capitalizing"

#对电子邮件地址进行匹配为例,用一个正则表达式来匹配电子邮件地址是一项很常见的任务。

text-c("ben@sina.com","kate@sina..com","ka...te@sina.com","kate@sina.12","kate@12.sina.com")

text

[1] "ben@sina.com" "kate@sina..com" "ka...te@sina.com"

[4] "kate@sina.12" "kate@12.sina.com"

grep("(\\w+\\.)*\\w+@(\\w+\\.)+[a-zA-Z]+",text)

[1] 1 3 5

关于r语言正则表达式和r语言正则表达式提取的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表