我在下面的表单中有一个文本:
aaaa a:link {文本装饰:无;字体家族:宋体,宋体,黑白,无衬线;color:#ffffff;} a:hover {文本装饰:下划线;}.intro{字体大小:11px;字体粗细:粗体;行高度:18px;颜色:#ffffff;填充左侧:25px;字体家族:宋体,宋体,黑体,无衬线;} ddddd eeeeee
我想删除所有的css与类。输出应为:
aaaa bbbbb cccccc ddddd eeeeee
aynone能给我看一个preg_match的例子吗?我找到了一个例子来删除所有之间的胸罩{},但我需要的是,所有与css是删除。
谢谢你,尼克
发布于 2011-01-31 18:13:39
从该字符串中删除非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选择器还是要保留的文本字符串的一部分。您根本不可能编写一个在所有情况下都完全可靠的正则表达式。
正如您所说,您可以相当容易地删除{}
大括号内的所有内容,但大括号外的选择器将很难可靠地与周围的文本分开。
https://stackoverflow.com/questions/4848259
复制相似问题