本文主要說明r語言的正規表示式,主要是一些簡單的函式和stringr包常用的方法
正規表示式通常被用來檢索、替換那些符合某個模式(規則)的文字。
一些r自帶的正則函式
grep,主要引數為匹配規則,待匹配的字串,返回向量中匹配成功的字串的下標
s<-c('1234abc456','123abcdefabc')
#返回下標
grep('abc',s)
[1] 1 2
grepl,主要引數為匹配規則,待匹配的字串,返回true或者false
#返回false or true
grepl('def',s)
[1] false true
sub,主要引數為匹配規則,替換的字串,待匹配的字串,返回查詢的第乙個進行替換
s_t<-sub('abc','$$$',s)
[1] "1234$$$456" "123$$$defabc"
gsub,主要引數為匹配規則,替換的字串,待匹配的字串,返回查詢的所有進行替換
gd_t<-gsub('abc','$$$',s)
[1] "1234$$$456" "123$$$def$$$"
安裝和載入包
install.packages("stringr")
library(stringr)
str_extract引數為待匹配的字串,匹配規則,返回首個提取匹配的字元
str_extract_all引數為待匹配的字串,匹配規則,返回所有提取匹配的字元
> str_extract(ss1,'[0-9]')
[1] "123"
> str_extract_all(ss1,'\\d')
[[1]]
[1] "123" "456"
str_locate引數為待匹配的字串,匹配規則,返回首個匹配成功的字元的位置
str_locate_all引數為待匹配的字串,匹配規則,返回所有匹配成功的字元的位置
> str_locate(ss1,'\\d')
start end
[1,] 3 5
> str_locate_all(ss1,'\\d')
[[1]]
start end
[1,] 3 5
[2,] 9 11
str_replace主要引數為待匹配的字串,匹配規則,替換的字串,返回查詢的第乙個進行替換
str_replace_all主要引數為待匹配的字串,匹配規則,替換的字串,返回查詢的所有進行替換
> str_replace(ss1,'\\d','777')
[1] " 777abc456 "
> str_replace_all(ss1,'\\d','999')
[1] " 999abc999 "
str_split,主要引數待匹配的字串,匹配規則,返回分割之後的字串
str_split_fixed,主要引數待匹配的字串,匹配規則,分割時指定的個數,返回分割之後的字串
> ss2<-"123a123a123a"
> str_split(ss2,'a')
[[1]]
[1] "123" "123" "123" ""
> str_split_fixed(ss2,'a',3)
[,1] [,2] [,3]
[1,] "123" "123" "123a"
str_count,引數待匹配的字串,匹配規則,返回匹配成功的次數
> str_count(ss2,'123')
[1] 3
str_trim,引數待匹配的字串,返回去掉空格之後的字串
> ss1
[1] " 123abc456 "
> str_trim(ss1)
[1] "123abc456"
str_c引數待合併的字串,待合併的字串,合併之後的字串
> ss1
[1] " 123abc456 "
> ss2
[1] "123a123a123a"
> str_c(ss1,ss2)
[1] " 123abc456 123a123a123a"
R語言之正規表示式
常見與正規表示式相關的函式 grep pattern,x,ignore.case false,perl false,value false,fixed false,usebytes false,invert false grepl pattern,x,ignore.case false,perl f...
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 fal...
regnam r語言 R語言之正規表示式
在我看來,正規表示式的主要用途有兩種 查詢特定的資訊 查詢並編輯特定的資訊,也就是我們經常用的替換。比如我們要在word,記事本等裡面使用快捷鍵ctrl f,進行查詢乙個特定的字元,或者替換乙個字元,這就使用了正規表示式。正規表示式的功能非常強大,尤其是在文字資料進行處理中顯得更加突出。r中的gre...