当前位置:天才代写 > tutorial > 其他教程 > 在R中利用正则表达式

在R中利用正则表达式

2017-12-04 08:00 星期一 所属: 其他教程 浏览:431

再次声明,用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(“[email protected]”,”[email protected]”,”ka…[email protected]”,”[email protected]″,”[email protected]”)
> text
[1] “[email protected][email protected]“ka…[email protected]
[4] “[email protected][email protected]
> grep(“(\\w+\\.)*\\w+@(\\w+\\.)+[a-zA-Z]+”,text)
[1] 1 3 5

 

    关键字:

天才代写-代写联系方式