正则表达式匹配部分或完整字符串

时间:2015-07-19 16:37:18

标签: regex hive

我对编写正则表达式相对较新,并希望为此寻求帮助。

我的示例数据是:

30/11/2018 M11362019           00 CIN VALIDATION       8888880000019781                                         OK
 08:34:32   84682309               246061434674072601
 P2P        84682309               246061434674072601
 DETAILS: ABC/ABC SFX : M11362019            00


 30/11/2018 M11362019           00 BAL ENQ(HOME PAGE)   8888880000019781            177.00                       OK
 08:34:34   84682309               246061434674074158
 P2P        84682309               246061434674074158

现在我尝试使用hive regex命令将其分解为列并进行进一步分析。理想情况下,我想将所有DETAILS捕获到一列中以方便使用,因为它的内容非常动态。

我提出的正则表达式是:

((0[1-9]|[12][0-9]|3[0-1])[/](0[1-9]|1[012])[/](19|20)\d\d) ([^\s]+\s*)(00) ([a-zA-Z0-9() ]*) ([0-9. ]*) ([a-zA-Z0-9_ ]*)\n( [0-9:]*) (\s*[0-9:]*) (\s*[0-9]*) ([a-zA-Z0-9 ]*)\n( [a-zA-Z0-9_]*) (\s*[0-9]*) (\s*[0-9]*)([a-zA-Z ]*)(\n( DETAILS:[a-zA-Z0-9:,.\-/ ]*)\n [a-zA-Z0-9:,.\-$/ ]*)

但是,这仅在存在细节时才捕获案例,而我只想将“细节”视为可选字段。你能建议我解决这个问题吗?

0 个答案:

没有答案