正規表現を使用して文字列を分割しようとしています。私はnifiで文字列をグループに分割するためにregexを使う必要があります。誰も私は正規表現を使用して文字列の下に分割する方法を助けることができます。文字列をコンマで区切り、コンマを二重引用符で囲まずに正規表現
私はこのような文字列を持っている:私はカンマで分割したいが、私は引用符でカンマを無視する必要が
"abc","-9223371901096288826","/home/test/20170614","abc.com","Hello,Test","7462200","4622012","1296614","1029293","893529","a:ce:o:5:l:p:MMM dd HH:mm:ss","Logs","UTF8","<111>Jun 14 12:43:20 logs: Info: 1497462198.717 13073 1.22.333.44 TCP/200 168 TCP_CONNECT 1.22.33.44:443 ""GO\ABC.COM"" DIRECT/img.abc.com - test_abc_7-DefaultGroup-DefaultGroup-NONE-NONE-NONE-DefaultGroup <IW_adv,3.9,-,""-"",-,-,-,-,""-"",-,-,-,""-"",-,-,""-"",""-"",-,-,IW_adv,-,""-"",""-"",""Unknown"",""Unknown"",""-"",""-"",0.10,0,-,""-"",""-"",-,""-"",-,-,""-"",""-"",-,-,""-""> - -"
を。
group 1 - abc
group 2 - -9223371901096288826
group 3 - /home/test/20170614
group 4 - abc.com
group 5 - Hello,Test
group 6 - 7462200
group 7 - 4622012
group 8 - 1296614
group 9 - 1029293
group 10 - 893529
group 11 - a:ce:o:5:l:p:MMM dd HH:mm:ss
group 12 - Logs
group 13 - UTF8
group 14 - <111>Jun 14 12:43:20 logs: Info: 1497462198.717 13073 1.22.333.44 TCP/200 168 TCP_CONNECT 1.22.33.44:443 ""GO\ABC.COM"" DIRECT/img.abc.com - test_abc_7-DefaultGroup-DefaultGroup-NONE-NONE-NONE-DefaultGroup <IW_adv,3.9,-,""-"",-,-,-,-,""-"",-,-,-,""-"",-,-,""-"",""-"",-,-,IW_adv,-,""-"",""-"",""Unknown"",""Unknown"",""-"",""-"",0.10,0,-,""-"",""-"",-,""-"",-,-,""-"",""-"",-,-,""-""> - -
私は分割するので、多くの正規表現を試してみましたが、適切な結果を得ることができない:私はこのような何かを発生します。
私は,(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)
正規表現を試しましたthis linkから試しました。
上記のregexはsplit()関数のJavaでうまく動作しますが、Javaでは使用したくありません。
私は(?<=\")([^,]*)(?=\")
正規表現を試して、コンマでグループ内の文字列を分割しましたが、二重引用符で囲んでも分割されています。
誰でも助けてくれますか?前もって感謝します。
あなたのOSは?私はUnixベースの解法を提案できます – RomanPerekhrest
NiFiがキャプチャのリストを取得するオプションを提供しているかどうかわかりませんが、もしそうであれば、分割する代わりに、引用された値をエスケープした引用符を['"((? "" [[^ "]))*)" '](https://regex101.com/r/y5futn/2) –
ドミトリーに感謝します。あなたの提案された表現がうまくいった。 – ankit