0
正規表現の表現があります:なぜregexp.FindAllStringは不要な空の文字列で一致した結果を返しますか?
302\=.+?190\=(\d|\.)+|`
と、これは文字列が一致することである。
8=FIX.4.4|9=181|35=i|34=6|49=XCD1|52=20171025-08:33:56.791|56=Q142|296=3|302=5|295=1|299=0|188=0.74499|190=0.74549|302=4|295=1|299=0|188=0.74996|190=0.75026|302=3|295=1|299=0|188=88.751|190=88.801|10=022|
結果は次のようになります。
302=5|295=1|299=0|188=0.74499|190=0.74549
302=4|295=1|299=0|188=0.74996|190=0.75026
302=3|295=1|299=0|188=88.751|190=88.801
が、それはいくつかの空の文字列で結果を返すことが:
[]string{"",
"",
"",
"",
"302=5|295=1|299=0|188=0.74499|190=0.74549",
"302=4|295=1|299=0|188=0.74996|190=0.75026",
"302=3|295=1|299=0|188=88.751|190=88.801",
"",
"",
"",
"",
""
....
}
コードは以下の通りです:
string := `8=FIX.4.4|9=181|35=i|34=6|49=XCD1|52=20171025-08:33:56.791|56=Q142|296=3|302=5|295=1|299=0|188=0.74499|190=0.74549|302=4|295=1|299=0|188=0.74996|190=0.75026|302=3|295=1|299=0|188=88.751|190=88.801|10=022|`
re := regexp.MustCompile(`302\=.+?190\=(\d|\.)+|`)
re.FindAllString(a1, -1)
あなたはそれを試すことができます。https://play.golang.org/p/0x_lBAX6Vkため|
後続のだ
'(\ d | \。)' ---これは '[\ d。]'で改善されるかもしれません。 '='もエスケープしないでください。 – zerkms