查找包含三位数的行

时间:2013-07-31 17:50:22

标签: regex r

我需要对包含 <three digit number> 的行进行子集化 我写了

foo <- grepl("<^[0-9]{3}$>", log1[,2])
others <- log1[!foo,]

但我不确定如何使用正则表达式......只是使用了备忘单和谷歌。我认为&lt;和&gt;人物正在抛弃它。

3 个答案:

答案 0 :(得分:6)

你几乎拥有它。尝试

^<[0-9]{3}>$

您可能应该阅读有关anchors^$)的信息。

答案 1 :(得分:3)

^$符号分别表示字符串的开头和结尾。你不应该在它们之前或之后匹配任何东西。

如果您想要包含该模式的行,则根本不应使用锚点。您应该使用此功能:<[0-9]{3}>(或将其缩短为<\\d{3}>

答案 2 :(得分:1)

仅仅为了子孙后代,我想我会为OP所陈述的问题做出我认为隐含答案的贡献。

似乎OP想要排除第二列包含3位整数的数据帧的行。使用'nchar'函数来计算每个数字中的字符数可以很容易地完成,如下所示:

others <- log1[nchar(log1[,2])!=3,]

我们只是创建一个数组,其中包含第2列每行中包含的字符数,如果数字不等于3,则选择该行。