2011-01-31 45 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选择器或保留的文本字符串的一部分。你根本无法写出在所有情况下都完全可靠的正则表达式。

正如您所说,您可以很容易地删除大括号内的所有内容,但大括号外的选择器将很难与周围的文本可靠分离。