/ / PHP expressão regular para extrair texto citado no corpo da tag - php, regex

Expressão regular do PHP para extrair o texto citado no corpo da tag - php, regex

Eu estou tentando escrever uma expressão regular no PHP. A partir deste código eu quero corresponder "bar".

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

Eu tentei este dois regex, sem sucesso. Corresponde a "foo"> "bar".

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

Alguém pode me ajudar?

Respostas:

3 para resposta № 1

Você precisa escapar da barra invertida em strings PHP:

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

Eu adicionei um grupo de captura para obter o conteúdo das citações, nas quais você parece estar interessado.

Já que você parece aplicar o regex ao XML, eu só quero avisá-lo que XML e expressões regulares não jogam bem juntas. Regex é apenas recomendável em conjunto com um DOM.


0 para resposta № 2
"w+"

deve corresponder a qualquer palavra char entre parênteses


0 para resposta № 3

Tente isto:

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

Se você quiser combinar apenas letras e números, você pode fazer:

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

0 para a resposta № 4
$regex = "/"(.+?)"(?=|tr)/"

Vai combinar "bar" (incluindo as aspas), e você tem o bar string (sem aspas) em $ 1. Usos olhe para frente.