namez <- c("foo2003", "bar2340", "naught45")
patternz <- "03"
grepl("[patternz]$",namez)
Run Code Online (Sandbox Code Playgroud)
这是行不通的.我应该用[patternz]替换什么,所以正则表达式将匹配patternz变量的内容?
[编辑]请注意,我想分别匹配字符串"03",而不是数字"0"和"3".
Rei*_*son 10
必须承认在这里努力查看问题所在.对于所述的例子不过是
R> namez <- c("foo2003", "bar2340", "naught45")
R> patternz <- "03"
R> grepl(patternz, namez)
[1] TRUE FALSE FALSE
Run Code Online (Sandbox Code Playgroud)
是必需的,因为patternz
是一个字符向量,目标不是匹配0
& 3
但匹配文字"03"
如果你只需要在字符串的末尾匹配,那么我们需要"$"
手动添加:
R> patternz2 <- "03$"
R> grepl(patternz2, namez)
[1] TRUE FALSE FALSE
Run Code Online (Sandbox Code Playgroud)
或通过paste0()
操作
R> grepl(paste0(patternz, "$"), namez)
[1] TRUE FALSE FALSE
Run Code Online (Sandbox Code Playgroud)
问题是使用patternz
实际的正则表达式和基本R函数完美地处理这个问题.
看起来你需要创建一个字符向量grepl()
,使用paste0()
似乎工作,虽然不是那么优雅:
> grepl(paste0("[", patternz, "]$"), namez)
[1] TRUE TRUE FALSE
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
333 次 |
最近记录: |