常用函数
- grep、 grepl、regexpr、gregexpr and regexec
- sub、gsub。
参数说明
- pattern----匹配正则表达式,或者字符串(当fixed = TRUE)
- x,text----需要匹配的字符向量(data)
- ignore.case ----是否忽略大小写。FALSE:否。TURE:是
- perl ----logical。是否用兼容模式正则?--搞不懂,默认
- value----如果为FALSE,则返回一个包含grep确定的匹配的(整数)索引的向量,如果为TRUE,则返回一个包含匹配元素本身的向量
- fixed----logical。如果为TURE,直接匹配字符串。
- useBytes----如果为TURE,按照字节匹配,而不是字符。
- invert----logical。如果为TURE,返回不匹配元素的索引或者值。
- replacement----替代字符串。
模式说明
- fixed = TRUE: 精确匹配。
- perl = TRUE: use Perl-style regular expressions.
- fixed = FALSE, perl = FALSE: use POSIX 1003.2 extended regular expressions (the default).默认,使用未知的东东--。
sub
描述:只替换第一个查询的字符串。
#用法:
>>sub(pattern, replacement, x, ignore.case = FALSE, perl = FALSE,
fixed = FALSE, useBytes = FALSE)
#样例:
data = fread("data.csv")
names(data)
#*>>user_date
data$user_date
#*>>2018/10/28 需要替换成2018-10-28
data = data[,user_date := sub('/','-',data)]$user_date
#*>>2018-10/28
gsub
描述:替换所有的字符串。
>> gsub(pattern, replacement, x, ignore.case = FALSE, perl = FALSE,
fixed = FALSE, useBytes = FALSE)
data = fread("data.csv")
names(data)
#*>>user_date
data$user_date
#*>>2018/10/28 需要替换成2018-10-28
data[,user_date := gsub('/','-',data)]$user_date
#*>>2018-10-28
grep
描述:返回匹配数据的位置。
>> grep(pattern, x, ignore.case = FALSE, perl = FALSE, value = FALSE,
fixed = FALSE, useBytes = FALSE, invert = FALSE)
grep('^flag_',names(data))
>>[1] 10 19 50 65 79
[6] 153 154 298 326 426
[11] 1346
grepl
描述:返回所有匹配的逻辑值。
>> grepl(pattern, x, ignore.case = FALSE, perl = FALSE,
fixed = FALSE, useBytes = FALSE)
grepl('^flag_',names(data))
>> [1] FALSE FALSE FALSE FALSE
[5] FALSE FALSE FALSE FALSE
[9] FALSE TRUE FALSE FALSE
[13] FALSE FALSE FALSE FALSE...