problemi con il testo di analisi utilizzando preg_split
-
21-09-2019 - |
Domanda
I scrivere qualche semplice parser per la mia pagina e avere qualche problema con esso.
testoHTML:
<p>some text</p><p>another text</p>
Se provo usare qualcosa come:
preg_split("#<p>#",$string);
Ho un risultato senza <p>
, e questo è molto molto male. (Solo </p>
esistere)
Forse posso dividere questa stringa di array, ma non rimuovere </p>
?
Soluzione
Proprio come Ivan ha detto, è necessario utilizzare (?=<p>)
. Volevo solo aggiungere che è possibile utilizzare
var $Paragraphs = array_filter(preg_split("/(?=<p>)/", "<p>some text</p><p>another text</p>"));
Quali saranno:
[1] => <p>some text</p>
[2] => <p>another text</p>
Altri suggerimenti
È possibile utilizzare questo (?=<p>)
costrutto che è lookahead positivo larghezza zero asserzione . Questo modello non consumerà il testo corrisponde. E 'appena troverà la posizione prima della stringa <p>
. Ecco esempio:
preg_split("#(?=<p>)#",$string);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow