/ / L'espressione regolare PHP corrisponde a un tag accoppiato ma non tag non abbinato, php, regex

L'espressione regolare PHP corrisponde a un tag accoppiato ma non tag non abbinato - php, regex

Sto estraendo un contenuto annidato di un tag. Ho scritto un'espressione regolare che funziona perfettamente sulla mia macchina locale (WAMP) PHP versione 5.3.8, versione regex multibyte (oniguruma) - 4.7.1

$tagname = "mytag";
$pattern = "@<$tagname(?:s.*?!/)?>(.*?)</$tagnames*>@s";

ma la stessa espressione regolare non funzionacorrettamente sulla mia macchina live con configurazione della versione 5.2.11 di PHP, regex multibyte (oniguruma) versione 4.4.4 e Multibyte regex (oniguruma) backtrack check = on.

Si prega di aiutare a modificare questa espressione regolare che inizia a lavorare sul sito live.

Questa corrispondenza regolare espressione <mytag></mytag> e non corrisponde <mytag />.

Aggiornamento: grazie per i vostri suggerimenti e risposte.

Ho aggiornato un po 'quell'espressione regolare e così viaha funzionato per me È possibile utilizzare questa espressione regolare ogni volta che si desidera ottenere contenuto interno (tag e testo nidificati). Non importa come è organizzato il tuo tag e indipendentemente da quanti attributi ha.

risposte:

0 per risposta № 1

devi mettere qualcosa, qualcosa come:

(?:</$tagname>|/>)