簡體   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