我需要帮助来了解grep函数中的Pattern代码

时间:2019-02-13 00:44:15

标签: r

这是来自datacamp.com测验中中级R课程的代码。

我不了解模式"^[0-9]+$"的工作方式。  有人可以解释一下吗?

dates <- c("12/15/10", "12-2012", "12.2014", "1995")
grep(pattern = "^[0-9]+$", x = dates)

输出为4

1 个答案:

答案 0 :(得分:0)

根据正则表达式

^ - Stands for beginning of the string
[0-9] - Numeric values 
+ -   One or more characters can satisfy the criteria 
$ -  Should check for the character that satisfy the criteria till the end of string

输入“ 12/15/10”,“ 12-2012”,“ 12.2014”,“ 1995”

该方法遍历每个值,并返回字符串中满足正则表达式的字符之和。

在您的示例中,要满足的条件是“仅包含数字字符的字符串”

"12/15/10"  ===  Two "/" are the non numeric character.
 "12-2012"  ===  One "-" is a non numeric character.
 "12.2014"  ===  One "." is a non numeric character.
 "1995"     ===  Zero non numeric character. [Satisfy the criteria]

1995在输入向量中的索引为4。

如果您输入的是 日期<-c(“ 12/15 // 10”,“ 12-2012”,“ 12.20.14”,“ 1995”,“ 1987”) grep(pattern =“ ^ [0-9] + $”,x =日期)

输出将是一个值为4 5的向量,表示满足条件的值的索引。