[英]R: Get value in between two patterns
我有一个代表命令行的字符串,其中给出了二进制文件和一系列参数。
string = "./bin -m A 4 -n 12 --LongName1 12 --LongName2 45 -t Hello -l 0.002 "
我想提取与--LongName1
关联的数值。 我怎样才能做到这一点? 请注意,-- --LongName2
不一定跟在LongName1
。 LongName1
包含字符串的结尾。
我找到了一个解决方案,它似乎可以正常工作,但确实很丑陋:
re = regexpr("LongName1", string)
start = attr(re, "match.length") + re[1] + 1
nbdigits = which(is.na(sapply(strsplit(substr(string, start, nchar(string)), ""), as.numeric)))[1] - 1
as.numeric(substr(string, start, start + nbdigits - 1))
# 12
使用正则表达式来回望:
string = "./bin -m A 4 -n 12 --LongName1 12 --LongName2 45 -t Hello -l 0.002 "
pattern <- "(?<=--LongName1 )\\d*"
m <- regexpr(pattern, string, perl = TRUE)
regmatches(string, m)
#[1] "12"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.