我对编写正则表达式相对较新,并希望为此寻求帮助。
我的示例数据是:
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:,.\-$/ ]*)
但是,这仅在存在细节时才捕获案例,而我只想将“细节”视为可选字段。你能建议我解决这个问题吗?