所以,我有一个向量v
,其中包含一系列数字,后跟day
或week
的指示。我想选择只有day
的序列。
v = c('abc_1day', 'abc_2day', 'abc_3day', 'abc_1week', 'abc_2dweek')
我认为or
条件可以在这里工作
v[grep('abc_|day', v)]
为什么不是?
答案 0 :(得分:2)
使用grepl
:
v[grepl("day", v)]
这假定day
仅作为令牌就足以匹配您想要的条目。如果没有,您可以修改正则表达式。要匹配day
之前的数字,您可以使用:
v[grepl("\\d+day", v)]
答案 1 :(得分:1)
我们可以使用
grep('^abc_[0-9]+day$', v, value = TRUE)
#[1] "abc_1day" "abc_2day" "abc_3day"
注意:这考虑了OP的数字标准,后面是字符串末尾的日期,并以'abc'开头。
答案 2 :(得分:1)
OR条件匹配## Client connection
ec2 = boto3.client(
'ec2',
aws_access_key_id=aws_access_key,
aws_secret_access_key=aws_secret_key,
region_name = ec2_region_name
)
def lambda_handler(event, context):
count = 0
for sg in ec2.describe_security_groups():
count = count + 1
print(count)
或abc_
。
一种选择是使用\K
,该lookarounds符合仅day
匹配的标准day
和数字:
abc_
这与akrun的v[grep('abc_[0-9]+\\Kday', v, perl = TRUE)]
[1] "abc_1day" "abc_2day" "abc_3day"
不同,后者匹配整个字符串。值得注意的是,grep('^abc_[0-9]+day$', v, value = TRUE)
优于documentation of the AfterInstall
parameter的一个有用优势是\K
可以是可变长度。