繁体   English   中英

R:在两种模式之间获取价值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM