これは、独自のデータ文字列からキー/値ペアの配列を返す非常に複雑な正規表現です。エクスプレスが.Netで使用できず、別の方法を使用する必要がある場合のデータのサンプルです。このPHP RegExマッチパターンを.NETに変換する方法
0,"101"1,"12345"11,"ABC Company"12,"John Doe"13,"123 Main St"14,""15,"Malvern"16,"PA"17,"19355"19,"UPS"21,"10"22,"GND"23,""24,"082310"25,""26,"0.00"29,"1Z1235550300000645"30," PA 193 9-05"34,"6.55"37,"6.55"38,"8.05"65,"1Z1235550300000645"77,"10"96,""97,""98
よく見ると、あなたがkey
、そのkey
、「value
」を参照してください、「value
」は、フォーマット上の唯一の保証は、各キーと値のペアはカンマで区切られていることであり、各値は常にに包まれます二重引用符。主な問題(あなたがそれを爆発させることができない理由)は、キーと値をエントリと同じ文字で区切るための前のコーダの貧弱な選択です。とにかく、私の手の中から。ここでは動作するPHPの例を示します。また、
Dim RegexObj As New Regex("(.*?),""(.*?)""")
:
function parseResponse($response) {
// split response into $key, $value pieces
preg_match_all("/(.*?),\"(.*?)\"/", $response, $m);
// loop through pieces and format
foreach($m[1] as $index => $key) {
$value = $m[2][$index]
echo $key . ":" . $value;
// this will output KEY:VALUE for each entry in the string
}
}
あなたは
Imports System.Text.RegularExpressions
Public Class Parser
Private Sub parseResponse(ByVal response As String)
Dim regExMatch As Match = Regex.Match(response, "/(.*?),\""(.*?)\""/")
End Sub
End Class
を使用し、それが唯一の最初の項目を返すようですが、私は運と/それぞれのために試してみました。 PHPの例のように、これらのキー/値のペアを1つずつ処理する必要があります。 –
@MikeL .: '.Match()'メソッドではなく '.Matches()'メソッドが必要です。 –
ありがとう!私たちは同時にそれを見つけました...各自のためにマッチマッチ –