【发布时间】:2015-01-12 11:04:34
【问题描述】:
我要解析以下文件:
0.9103726 = (MATCH) sum of:
0.0050276485 = (PHRASE) title:abc
0.9323103726 = (MATCH) sum of:
0.1323103726 = (MATCH) mul of:
0.185 = (PHRASE) title:xyz
0.9103726 = (MATCH) sum of:
0.234 = (PHRASE) title:bcd
我想要的输出是这样的:
0.0050276485 -- title -- abc
0.185 -- title -- xyz
0.234 -- title -- bcd
我试过的命令是这样的:
grep -oP '[\d.]+(?==(PHRASE)title:?)'
但它没有给我正确的输出。 很抱歉之前的问题。不清楚。
【问题讨论】:
-
你的正则表达式不起作用的原因是括号在 Perl 正则表达式中不匹配;使用
\(PHRASE\)从字面上匹配带括号的表达式。此外,title:之前需要一个空格才能匹配。但最后,grep无法解析任何内容,只需打印匹配的行或子字符串。