come abbinare questo tipo di costruzione?
-
05-07-2019 - |
Domanda
Sto analizzando e il tipo di testo che voglio abbinare e poi renderlo nullo è il seguente: -
<tr class="label-BGC"><td colspan="4">any kind of text here</td></tr>
Voglio abbinare ogni riga che contiene "<tr class="label-BGC"><td colspan="4">any text</td></tr>"
è sera e la batteria del mio cervello è completamente scarica
quello che sto cercando di fare è: -
$patterns='<td colspan="4">'.stristr($parsed,'[^a-z0-9_- $]').'</td></tr>';
$replacements=' ';
$parsed = str_replace($patterns, $replacements, $parsed);
$ parsed contiene tutti i dati che stanno analizzando.
il mio codice non funziona qualcuno può aiutarmi con alcuni suggerimenti qui !!!
Soluzione
Prova qualcosa di semplice come questo:
$parsed = preg_replace('{<tr class="label-BGC"><td colspan="4">.*?</td></tr>}',
$replacements, $parsed);
Il. corrisponde a qualsiasi carattere, il * lo fa corrispondere a 0-molti e il? impedisce che sia avido, ad es. si fermerà alla prima sequenza e non all'ultima possibile.
Altri suggerimenti
Prova quanto segue:
preg_replace("`\s*<tr\s+class\s*=\s*"label-BGC"\s*>\s*<td\s+colspan\s*=\s*"4"\s*>.*?</td\s*>\s*</tr\s*>\s*`i", "", $content);
Tutta la corrispondenza \s
potrebbe essere un po 'eccessiva, ma è molto tollerante se questo input proviene da un utente.
Altrimenti, probabilmente puoi semplicemente cavartela
preg_replace("`<tr class="label-BGC"><td colspan="4">.*?</td></tr>`i", "", $content);