我是SQL的新手,需要查询数据库以提取某些信息,然后才能将其导入到我熟悉的另一个分析数据的软件中。我试图查询的表格信息如下所示:
MV: Gone Girl (2014)
BT: USD 61,000,000
CP: Twentieth Century Fox Film Corporation, Regency Entertainment (USA), Inc.
GR: USD 167,735,396 (USA) (8 February 2015)
GR: USD 167,590,676 (USA) (25 January 2015)
GR: USD 37,513,109 (USA) (5 October 2014)
GR: USD 167,761,501 (USA)
我想提取以GR
开头的行中的信息,我想将它们组织成四列;
花了很多时间之后我现在把下面的代码放在一起(我知道它不是一种优雅的方式),但它没有抓住最后一行的信息,因为它缺少日期信息。我希望最后一行的日期列为空,但仍然会提取所有其他信息。
regex_match '(?:GR:[ ]([A-Z]{3})[ ](\d{1,3}(?:[,]\d{3})+)[ ][(](USA)[)][ ][(](?:|\d{1,2}[ ]\w+[ ]\d{1,4})){1}','g')
如果有人能帮我修改我的代码,我将不胜感激。
答案 0 :(得分:1)
这可能会做你想要的,即使我不确定你需要什么,至少你问的是:
(?:GR: )([A-Z]{3}) ((?:[0-9]{1,3},*)*) (?:\(([A-Z]{3})\)) *(?:\(([1-9]{1,2} [a-zA-Z]* [0-9]{4})\))*
您可以查看here以查看结果。
每个列有4个组。有时第四个可以是空的(例如,如果没有日期)。