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