2

URLを検出するためにaz、AZ、0-9、スペース、特殊文字を取得するためのパターンは何ですか

これは私の入力文字列です:

{id:1622415796、名前:ヴィンセント ダグピン、写真:https://fbcdn-profile-a.akamaihd.net/hprofile-ak-snc4/573992_1622415796_217083925_q.jpg}

これがパターンです:これまでのところ

([a-z_]+):[ ]?([\d\s\w]*(,|}))

期待される結果:

id:1622415796
name:Vincent Dagpin
picture:https://fbcdn-profile-a.akamaihd.net/hprofile-ak-snc4/573992_1622415796_217083925_q.jpg

問題は、最後の部分を取得できないことです..画像のURL..

助けてください..

4

2 に答える 2

1

正規表現が正しい解決策だとは思いません。C# には、JavaScriptSerializer で必要なツールが既に含まれています。方法については、こちらの回答をご覧ください。

于 2012-04-19T13:38:14.083 に答える
1

これがあなたが期待する唯一の種類の json 入力であり、さらに json を解析する可能性が非常に低い場合、完全な json パーサーはやり過ぎです。

文字列の分割で十分かもしれません。jsonString.Split(',', '{', '}'); そのための正規表現は次のようになります。[{},]([a-z_]+):[ ]?(.+?)(?=,|})

送信されている json 文字列を変更できる場合は、正規表現を二重引用符などの別のキーにすることができます。これは私が使用しているもので、json キー名を知る必要があります。System.Text.RegularExpressions.Regex("(?<=\"" + key + "\"+ *: *\"+).*(?=\")");

于 2015-06-12T21:09:00.413 に答える