检测字符串中CSS代码的Javascript正则表达式

Javascript regex to detect CSS code inside a string?

本文关键字:Javascript 正则表达式 代码 CSS 字符串 检测      更新时间:2023-09-26

可能的重复:
在JavaScript/jQuery中解析CSS
在JavaScript 中用RegEx解析CSS字符串

如何查找字符串是否包含CSS规则?

示例规则:

selector {
  property:value;
}

selector { property:value; }
selector{property:value}
...

基本上,我想知道一个文本块是代表PHP+HTML还是CSS代码。

一种方法是,我想修剪文本,然后将文本的第一个字符与#.或CSS选择器(如bodyp等)匹配。你认为这是个好主意吗?

tldr考虑使用适当的CSS解析器(如JSCSSP)进行最终验证。

这取决于目标,正则表达式可能完全无效

如果这只是"尝试"查看它是否"可能"包含CSS选择器,那么我可能倾向于尝试过于宽泛的匹配,如果CSS字符串值(如"}")有任何复杂的内容或有CSS注释,则会失败,并且会接受无效的大量输入:

(?:'s*'S+'s*{[^}]*})+       // use anchored

同样,一个表达式应该检测大多数带有标记的简单HTML(无论多么无效),以及只有不幸的CSS情况(在注释或CSS字符串或疯狂的子选择器中匹配):

<(?:br|p)[^>{]*>|</'w+'s*>   // use case-insensitive

快乐的编码。

另请参阅:在JavaScript/jQuery 中解析CSS

http://arxiv.org/abs/1106.4064可能会引起你的兴趣。

算法编程语言识别

David Klein、Kyle Murray、Simon Weber

(提交于2011年6月21日(v1),最后修订于2011年11月9日(本版本,v2))

受网络上未识别的代码数量的启发,我们介绍了一种实用的方法来通过算法识别源代码的编程语言。我们的工作基于监督学习和智能统计特征。我们还探索了一种语法方法,但放弃了这种方法。在测试中,我们的实现大大优于依赖贝叶斯分类器的现有工具。代码是用Python编写的,并且可以在MIT许可证下使用。