expression régulière pour extraire chaîne JSON à partir du texte
Je suis à la recherche pour les regex extraire chaîne json à partir du texte.
J'ai le texte ci-dessous, qui contient
JSON string(mTitle, mPoster, mYear, mDate)
comme ça:
{"999999999":"138138138","020202020202":{"846":{"mTitle":"\u0430","mPoster":{"
small":"\/upload\/ms\/b_248.jpg","middle":"600.jpg","big":"400.jpg"},"mYear"
:"2013","mDate":"2014-01-01"},"847":{"mTitle":"\u043a","mPoster":"small":"\/upload\/ms\/241.jpg","middle":"600.jpg","big":"
138.jpg"},"mYear":"2013","mDate":"2013-12-26"},"848":{"mTitle":"\u041f","mPoster":{"small":"\/upload\/movies\/2
40.jpg","middle":"138.jpg","big":"131.jpg"},"mYear":"2013","mDate":"2013-12-19"}}}
Afin d'analyser chaîne JSON je devrais extraire chaîne JSON à partir du texte.
C'est pourquoi, ma question: Pourriez-vous m'aider à faire seule chaîne JSON
à partir du texte? S'il vous plaît aider.
J'ai essayé cette expression régulière, sans succès:
{"mTitle":(\w|\W)*"mDate":(\w|\W)*}
OriginalL'auteur isaaijan | 2014-01-04
Vous devez vous connecter pour publier un commentaire.
La regex suivante devrait fonctionner:
Case démo ici.
La principale différence par rapport à votre regex est le
.+?
partie, qui, en panne, signifie:.
)+
)?
)La
?
l'opérateur après la+
est très important ici --- parce que si vous l'avez supprimé, le premier.+
(en\{\s*"mTitle"\s*:\s*(.+?)
) correspondent à l'ensemble du texte, pas le texte jusqu'à la"mPoster"
mot, qu'est ce que vous voulez.Avis il est juste un peu plus compliqué que la version de
\{"mTitle":(.+?),"mPoster":(.+?),"mYear":(.+?),"mDate":(.+?)\}
(avec\s*
pour correspondre à des espaces, permise par la notation JSON).Semble bon, bien expliqué
OriginalL'auteur acdcjunior