原义表达式
自己代表的就是自己
> mystring1 <- c('apple','orange')
> grep('p', mystring1)
[1] 1
转义
代表的不是自己
- . 表示任意字符
mystring2 <- c('shuda','.dfs','-dsfd')
grep('.',mystring2)
- [1-9] 表示1到9
> mystring3 <- c('9anv','fss7','1000','ss7')
> grep('[0-1]',mystring3)
[1] 3
- ^ 表示是以开头
> mystring3 <- c('9anv','fss7','1000','ss7')
> grep('[0-1]',mystring3)
[1] 3
- []表示从里取值,[]里有^表示不取[]的值
- [^1-9]表示不是以1到9开头
mystring3 <- c('9anv','fss7','3000','ss7')
grep('[^0-1]',mystring3)
- {2,3}表示前面的正则表达式重复2-3次
> mystring6 <- c('1220','2289','2228','10002')
> grep('2{2,}',mystring6)
[1] 1 2 3
- ()表示括号内为一个整体
> mystring7 <-c('food','foot','foul','faons',"old")
> grep('fo{1,}',mystring7)
[1] 1 2 3
> grep('(fo){1,}',mystring7)
[1] 1 2 3
> grep('o{1,}',mystring7)
[1] 1 2 3 4 5
- *表示0-n,+表示1-n,?表示0-1
- |管道符 或者
> mystring8 <- c('kobe','messi','neymar')
> grep('^k|^m',mystring8)
[1] 1 2
- $表以什么结尾,\b表示边界,前面后面后可
> mystring9 <- c('active','positive','neagtive','iention')
> grep('ive$', mystring9)
[1] 1 2 3
> grep('ive\\b', mystring9)
[1] 1 2 3
- 保义字符 ,让有转义的字符保留本身
> mysting10 <- c('ac^bb','^df')
> grep('\\^', mysting10)
[1] 1 2
\\d = [0-9] 匹配数字,只要有就出现
\\D = [^0-9] 匹配非数字
\\s 空白字符,空白字符是指在屏幕上不会显示出来的字符(如:空格、制表符tab、回车换行等),空字符就没有''
\\S 非空白字符 ,除空白字符和空字符
‘’是空字符 非空字符指‘’以外的其他字符,
\\w =[a-zA-Z0-9] 字母和数字
\\W = [^a-zA-Z0-9]非字母和数字
\\b 匹配边界
\\B 匹配非边界
\\< 匹配以空白字符开始的文本
\\>匹配以空白字符结束的文本
f
> mystring11 <- c('2013','abcd','13sg')
> grep('\\d', mystring11)
[1] 1 3
> grep('\\D', mystring11)
[1] 2 3
> mystring12 <- c('', ' able', ' moth er','happy',‘ ’)
> grep('\\s', mystring12)
[1] 2 3 #有空白字符才会返回,‘’没有字符不是空字符
> grep('\\S', mystring12) #非空白字符才会被返回,只有‘’是空字符非空白字符
[1] 2 3 4
> mystring12 <- c('', ' able', ' moth er','happy',' ')
> grep('\\s', mystring12)
[1] 2 3 5 #有空白字符才会返回,‘’没有字符不是空字符
> grep('\\S', mystring12)
[1] 2 3 4 #非空白字符才会被返回,只有‘’是空字符非空白字符
> mystrinf13 <- c('theory', 'the republic', ' the ',"they"," they ")
> grep('\\<the\\>',mystrinf13) #the
[1] 2 3