我有这个复杂的正则表达式
vars()
我需要解析一个文件(全部在一行上)并仅输出匹配的组,如
/"_outV":([0-9]+),"_inV":([0-9]+),"_label":"([a-z\/]+)",/
目前唯一几乎正常工作在线人
print $1 $2 $3
但是在比赛结束后,它最终也会在最后回复整个文件。 我该如何解决这个问题?
我虽然删除perl -pe 'while(m/"_outV":([0-9]+)\,"_inV":([0-9]+)\,"_label":"([a-z\/]+)\"\,/g){print "$1 $2 $3\n";}'
选项会成功,但事实并非如此。
答案 0 :(得分:2)
对我来说很好看。
您需要使用-p
和here is why 替换 -n
。
一些更好的观点:
,
和"
进行反斜杠。 [0-9]
替换为\d
。 /
。最终结果优化
perl -ne 'print "$1 $2 $3\n" while m{"_outV":(\d+),"_inV":(\d+),"_label":"([a-z/]+)",}g'