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 № 1devi mettere qualcosa, qualcosa come:
(?:</$tagname>|/>)