J'ai donc une chaîne comme suit: Je veux tout récupérer de "données =" à la finale ";" p> aussi, il n'y a pas non plus Espaces ou points-virgules à l'intérieur des données p> EDIT: P> "Données réelles": sortie: fais cela dans un script python à l'aide de data = {"info": {"foo": "bar", "bla": "boo"}; code> p> '{"info": {"foo": "bar", "bla": "boo"}' code> < / p> re code>, une fois extrait, je la sérialise dans JSON P> P>
3 Réponses :
Rien de fantaisie nécessaire; Vous pouvez simplement utiliser Ceci capture p> / data = \ s +; / code> data = code>, puis tout caractère non-espaces, puis Code>. p> const string = '[OMITTED] data={{...{...}...{..}}}; [OMITTED]';
const regex = /data=\S+;/
console.log(string.match(regex)[0]);
Vous pouvez utiliser p> (? :
(? lookbehind: il va ancrer juste après (? =;) code> lookahead: il va ancrer juste avant ; strong> string li>
. *? code>: il correspondra à tous les caractères entre les ancres li>
ul> const string = 'data={"info":{"foo":"bar","blah":"boo"};';
const regex = /(?<=data=).*?(?=;)/mg;
console.log(string.match(regex)[0]);
Celui-ci est strict pour trouver l'objet afin que le char Il est bon de l'avoir strict car il pourrait y avoir une autre variable nommée { code> doit être après data = code> avoir quelque chose entre, y compris le newline code>, et Il permet aux espaces après = code> et } code> données code> p>
Veuillez afficher des données réelles et quelle sera votre production attendue. Est-ce dans un éditeur, sélectionnez une instruction ou une variable de programme? Quel système d'exploitation, programme, RDBMS ou langue? Tous les moteurs Regex ne sont pas créés égaux.
@Agary_w Voir Modifier