-1
誰能告訴我爲什麼這個正則表達式導致php分段錯誤?php preg_replace分段錯誤/刪除tr元素中的換行符( n)
$text = preg_replace('~[\s\r\n]+(?=(?:(?!<tr).)*<\/tr>)~is', ' ', $text);
我需要在tr
元件除去換行符(\n\r
)。也許有更好的正則表達式來做到這一點,或者有一個非正則表達式的解決方案?
UPDATE:
我需要刪除換行符僅內部tr
元素。其他換行符應該保持不變。
UPDATE2:
我不是用正則表達式解析HTML。我正在收到電子郵件正文(它可以是沒有表格的巨大html,它可以是純文本),刪除tr中的換行符,剝離HTML標籤並使用純文本。
UPDATE3:
請不要回答 「使用解析器」 或者downvote。我認爲它不適合這種情況,如果我錯了,請解釋我爲什麼錯了。我真的會讚賞它。謝謝。
'也許有非正則表達式的解決方案?'當然,使用HTML解析器。 – Toto
[Obligatory ...](http://stackoverflow.com/a/1732454/1223693)do ** not **使用正則表達式來解析HTML。 – Doorknob
@pregmatch ty for sugestion,但我解析電子郵件,所以lynx不是一個選項 –