R语言正则内容
str(grep)
function(pattern,x,ignore.case = FALSE,perl=FALSE,value=FALSE,fixed=FALSE,useBytes = FALSE , invert = FALSE)
pattern 模式
ignore.case 是否忽略大小写
value 是否将相应索引的值作为返回值
x 需要转化的数据
ss<-c("1314","abc","a b c","ABC","aB12c","13ab14c")
grep("ab",ss)
筛选ss中含有小写字母ab的字符串
得到相应索引
2 6
grep("ab",ss,ignore.case= TRUE)
得到2 4 5 6
grep("ab",ss,value = TURE)
“abc” “13ab14c”
grep("ab",c("acb","ba"))
integer(0)
1.元字符
^$
*?+
\?\*
\t \n \r \b \s \S \w \W \d \D
grep("a.+b",c("ab","a b","A b","a#b","a##b"))
grep("a.?b",c("ab","a b","A b","a#b","a##b"))
grep("a.*b",c("ab","a b","A b","a#b","a##b"))
grep("a.{1,3}b",c("ab","a b","A b","a#b","a##b"))
1 .‘a’‘b’ 连个字符中含有的字符数
2. 大于等于1
3. 0-1
4. 任意多个
5. 1-3
grep("^1",ss)
表示查找以’1’为开头的字符
grep("4$",ss)
表示查找以“4’结束的字符
注意^ &
的位置
grep("a[2c]b",c("a2b","a1cb","acb","ab"))
表示查找’a2b‘ 或者 ‘acb’
(即[2,c]其中当且仅当出现一个的时候)
grep("a[2c]*b",c("a2b","a1cb","acb","ab"))
与上例相比多查找了 “ab”
(即[2,c]中的元素出现零个或者多个的时候)
grep("a[1-9]b",c("a2b","a1cb","acb"))
结果为 “a2b”
grep("a[a-z]b",c("a2b","a1cb","acb"))
结果为 “acb“
grep("a[^c]b",c("a2b","a1cb","acb"))
表示查找ab之间字符不是’c’的
即’a2b’
grep("(13|13ab).4",c("a2b","a1cb","acb","13ab14c","1314"))
() 表示字符的组合
结果为 ”1314“ ”13ab14c“
(13|13ab).4 =》 (13).4 或者 (13ab).4
?gsub
gsub(pattern,repalcement,x,ignore.case=FALSE,perl=FALSE, fixed = FALSE , useBytes = FALSE)
replacement = 要替换的内容
grep("(13|13ab).4","xxxx",ss)
”1314“ ”13ab14c“ => “xxxx” “xxxxc”
grep("(13|13ab).4","\\1",ss)
“\1” 表示第一次匹配的内容
”1314“ ”13ab14c“ => “13” “13abc”
grep("a\\?b",c("acb","a?b","a??b"))
得到”a?b“的索引
两个反斜杠加上字符 表示转义字符
\t \n \r \b \s \S \w \W \d \D
分别表示 \t
制表符 \n
回车符 \r
换行符 \b
文字间隔符号 \s
空格符号 \S
表示不是空格的符号 \w
构成文字的字符 \W
表示不是构成文字的字符
注意R语言中要用两个\
grep("^\\w+&",ss)
表示查找从开头到结尾都是文字字符的
grep("\\W",ss)
表示查找含有非文字字符的字符串
grep("\\d",ss)
查找含有数字的字符串
grep("\\D",ss)
查找不含有数字的字符串
链接: link.
list.files(path=".",pattern = NULL, all.files = FALSE , full.names = FALSE , recursive= FALSE, ignore.case= , include.dirs= FALSE)
all.files 是否查找隐藏文件
full.names 是否使用文件的全名称包括文件类型
recurisive 是否查找子目录
px<-"/user/share"
fx<- list.files(path=px,pattern = "\\.jpg&",recursive = TRUE, full.names=TRUE,ignore.case= TRUE)
head(fx)
查找含有".jpg"的字符串
?file##查看文件的相应方法
head(file.size(fx))##显示文件大小