2015-07-10 95 views
1

我有这样的文字:正则表达式匹配n次出现有环视

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,依此类推。

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

PD:我使用该R行:regmatches(data,regexpr("(\\S+)(?= $/MB)", data, perl=TRUE))

+0

另外:您需要转义美元符号以防止它被解释作为主题结束/断言结束。 – Luv2code

回答

0

尝试匹配前面的 “概念1:” 线,以获得特定的值:

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

或:

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