2011-01-31 38 views
0

刪除內聯CSS和類我在這個表格中的文字:從文本與PHP

AAAA BBBBB CCCCCC一:鏈接{文字裝飾:無; FONT-FAMILY:宋體,宋體,黑體,無襯線;顏色:#ffffff; } a:hover {text-decoration:underline; } .intro {font-size:11px; font-weight:bold; line-height:18px; color:#ffffff; padding-left:25px; font-family:Verdana,Arial,Helvetica,sans-serif; } ddddd eeeeee

我想刪除所有與類的CSS。輸出應該是:

AAAA BBBBB CCCCCC DDDDD EEEEEE

aynone能告訴我一個例子的preg_match?我喜歡用一個例子來刪除brakets {}之間的所有內容,但我需要刪除所有用css的東西。

感謝 聶

+0

爲什麼不使用preg_replace來滿足您的條件? – 2011-01-31 07:07:03

回答

0

你將與來自該字符串除去非CSS件麻煩的是,它很難確定哪些部分是CSS的,哪些不是。

你說你想留下aaaa bbbbb cccccc ddddd eeeeee,但實際上從你的原始字符串中,aaaa bbbbb cccccc將是CSS選擇器的有效部分。他們將選擇名爲<aaaa><bbbbb><cccccc>的元素。當然,這些都不是有效的HTML元素,但CSS可以用於將樣式應用於任意XML和HTML,所以它們可以非常容易地成爲有效的元素。如果您使用的是xhtml,則它們可以在自定義名稱空間下非常合法地出現在您的頁面中。

但它變得更糟。我認爲文本實際上不會是aaaa bbbbb cccccc,但會是任意字符串。在這種情況下,可以認爲這可能是一句像'我很強'的句子。在這種情況下,strong將成爲您想要刪除的字符串的一部分,但<strong>也是一個有效的HTML元素(就此而言,<I>),所以即使您只是堅持這一點,也不可能在上面說明字符串是否打算成爲CSS選擇器或保留的文本字符串的一部分。你根本無法寫出在所有情況下都完全可靠的正則表達式。

正如您所說,您可以很容易地刪除大括號內的所有內容,但大括號外的選擇器將很難與周圍的文本可靠分離。