0

我正在做解析,我想匹配的文本类型然后使其为空如下: -

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

我想匹配包含的每一行 "<tr class="label-BGC"><td colspan="4">any text</td></tr>"

晚上到了,我的脑电池完全没电了

我想做的是:-

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

$parsed 包含我正在解析的全部数据。

我的代码不起作用,任何人都可以在这里给我一些建议!!!

4

2 回答 2

0

尝试这样简单的事情:

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

这 。匹配任何字符,* 使它匹配 0-many,而 ? 停止它变得贪婪 - 即它将停止在第一个序列,而不是最后一个可能的序列。

于 2009-09-10T11:32:06.513 回答
0

尝试以下操作:

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

所有的\s匹配可能有点矫枉过正,但如果这个输入来自用户,这是非常宽容的。

否则,您可能会逃脱

preg_replace("`<tr class="label-BGC"><td colspan="4">.*?</td></tr>`i", "", $content);
于 2009-09-10T11:44:29.077 回答