这是一个更大的更复杂的数据集的最小例子,只是试图让我的头脑周围的东西.
> grep("X10\\.1+",c("X10.10","X10.11","X10.12"))
[1] 1 2 3
Run Code Online (Sandbox Code Playgroud)
现在我2原本只期望被归还,因为'+'应该是'前面元素中的一个或多个'.我认为逃避这段时间(我必须处理,所以想要保持在示例中)可能导致问题.
> grep("X101+",c("X1010","X1011","X1012"))
[1] 1 2 3
Run Code Online (Sandbox Code Playgroud)
那么,我对'+'功能的理解是错误的?
结论:
谢谢@James.所以我的理解是+是'另外一个或多个前面的元素'而不是它实际意味着什么,这是'只需要前面一个元素的一个或多个'.
11+会完成我的想法(在第一个之后有1个或更多的1个等).干杯
您需要表示在任意数量的1之后,您希望匹配字符串的结尾.你$用来做这个.
grep("X10\\.1+$",c("X10.10","X10.11","X10.12"))
[1] 2
Run Code Online (Sandbox Code Playgroud)
同样,^如果要限制匹配开始X10.,则匹配字符串的开头,而不是PX10.匹配现有正则表达式匹配的实例.