用于匹配第n次出现的正则表达式与环视

时间:2015-07-10 15:45:03

标签: regex r regex-lookarounds regex-greedy

我有这样的文字:

Concept 1:

108 MB * 0.062012 $/MB________________6.70 $

Concept 2:

108 MB * 0.07982 $/MB ________________8.62 $

Concept 3:

125 MB * 0.002215 $/MB________________0.28 $

我想得到价格" 0.062012" ," 0.07982"," 0.002215"根据每个位置的具体正则表达式,例如:regex1获得0.062012,regex2获得0.07982等等。

到目前为止,我只是设法使用相同的正则表达式获取所有值:(\\S+)(?= $/MB)

P.D:我正在使用此R行:regmatches(data,regexpr("(\\S+)(?= $/MB)", data, perl=TRUE))

1 个答案:

答案 0 :(得分:0)

尝试匹配前面的“概念1:”行以获取特定值:

regex1 = (?=Concept 1:\\n\\n\\S+ MB \\* )(\\S+)

或:

regex1 = (?=Concept\\s+1:\\n\\n\\S+\\s*\\w+\\s+\\*\\s+)(\\S+)