regex - R grep匹配点

标签 regex r

所以我有两个字符串,例如 mylist<-c('claim', 'cl.bi') , 当我这样做的时候

grep('^cl\\.*', mylist)

它同时返回 1 和 2。但是如果我这样做了

grep('^cl\\.', mylist)

它只会返回 2。那么为什么第一个匹配 'claim' ?期间匹配发生了什么?

最佳答案

"^cl\\.*" 匹配 "claim" 因为 * 量词是这样定义的(这里引用自 ?regex) :

'*' The preceding item will be matched zero or more times.

“claim” 包含行首,然后是 c,然后是 l,然后是零(在本例中) 或更多点,因此满足成功匹配的所有要求。

如果您只想匹配以 cl. 开头的字符串,请使用一次或多次 量词,+,如下所示:

grep('^cl\\.+', mylist, value=TRUE)
# [1] "cl.bi"

关于regex - R grep匹配点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32916884/

相关文章:

regex - 在多列文件中 - 从 Bash 中的小数中删除所有尾随 0

arrays - 循环移位数组 R

R中的递归分组

R裁剪栅格数据和设置轴限制

java - 如何从 Android/Java 中的字符串中获取多个子字符串?

javascript - 使用正则表达式匹配字符串

regex - 如何在非空格文本开始之前删除前面的空格 + 正则表达式 + sed +

linux - 如何在 Linux 中替换批处理文件的字母

r - 将实时奥运奖牌数据下载到 R 中

javascript - 在字母数字字符之间以分号分隔