/ / PHP expression régulière pour extraire du texte cité dans le corps de la balise - php, regex

Expression régulière PHP pour extraire du texte entre guillemets - php, regex

J'essaie d'écrire une expression régulière en PHP. A partir de ce code, je veux faire correspondre "bar".

<data info="foo">
"bar"|tr
</data>

J'ai essayé ces deux regex, sans succès. Il correspond à "foo"> "bar".

$regex = "/"(.*?)"|tr/s";
$regex = "/"[^"]+(.*?)"|tr/s";

Est-ce que quelqu'un peut m'aider?

Réponses:

3 pour la réponse № 1

Vous devez échapper à la barre oblique inverse dans les chaînes de PHP:

$regex = "/"([^"]*)"\|tr/s";

J'ai ajouté un groupe de capture pour obtenir le contenu des citations qui vous intéressent.

Comme vous semblez appliquer le regex au XML, je veux juste vous avertir que XML et les expressions régulières ne sont pas compatibles. Regex est uniquement recommandé en association avec un DOM.


0 pour la réponse № 2
"w+"

devrait correspondre à n'importe quel mot char entre parenthèses


0 pour la réponse № 3

Essaye ça:

$regex = "/"([^">]+)"|tr/s"

Si vous voulez faire correspondre seulement des lettres et des chiffres, vous pouvez le faire:

$regex = "/"([wd]+)"|tr/s"

0 pour la réponse № 4
$regex = "/"(.+?)"(?=|tr)/"

Va correspondre "bar" (y compris les guillemets), et vous avez le bar chaîne (sans les guillemets) dans 1 $. Les usages regarder en avant.