Pregunta

estoy haciendo un análisis y el tipo de texto que quiero hacer coincidir y luego hacer que sea nulo es el siguiente: -

<tr class="label-BGC"><td colspan="4">any kind of text here</td></tr> 

quiero hacer coincidir cada línea que contiene "<tr class="label-BGC"><td colspan="4">any text</td></tr>"

es tarde aquí y mi batería cerebral está totalmente descargada

lo que intento hacer es: -

$patterns='<td colspan="4">'.stristr($parsed,'[^a-z0-9_- $]').'</td></tr>';
$replacements=' ';
$parsed = str_replace($patterns, $replacements, $parsed);

$ parsed contiene todos los datos que estoy analizando.

mi código no funciona, ¿alguien puede ayudarme con algunas sugerencias aquí?

¿Fue útil?

Solución

Pruebe algo simple como esto:

$parsed = preg_replace('{<tr class="label-BGC"><td colspan="4">.*?</td></tr>}', 
                      $replacements, $parsed);

El. coincide con cualquier carácter, el * hace que coincida con 0-muchos, y el? evita que sea codicioso, es decir se detendrá en la primera secuencia, y no en la última posible.

Otros consejos

Pruebe lo siguiente:

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);

Todas las coincidencias \s pueden ser un poco exageradas, pero es muy indulgente si esta entrada proviene de un usuario.

De lo contrario, probablemente puedas salirte con la tuya

preg_replace("`<tr class="label-BGC"><td colspan="4">.*?</td></tr>`i", "", $content);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top