解释查找CSS注释的正则表达式
我在w3.org的页面上找到了这个正则表达式代码,它可以找到注释解释查找CSS注释的正则表达式,css,regex,Css,Regex,我在w3.org的页面上找到了这个正则表达式代码,它可以找到注释 \/\*[^*]*\*+([^/*][^*]*\*+)*\/ 它很长,有点难理解。我只是把 \/\**\*\/ 查找注释,但当我在中测试它时,它会查找单行注释而不是多行注释,而原始正则表达式可以查找所有类型的注释 我不明白这是怎么回事 +([^/*][^*]*\*+)* 原始正则表达式中的部分不起作用。有人能给我解释一下吗?逐一解释: \/您只找到单行注释的原因是,在典型的正则表达式中,匹配除换行符以外的任何内容;而另一个使
\/\*[^*]*\*+([^/*][^*]*\*+)*\/
它很长,有点难理解。我只是把
\/\**\*\/
查找注释,但当我在中测试它时,它会查找单行注释而不是多行注释,而原始正则表达式可以查找所有类型的注释
我不明白这是怎么回事
+([^/*][^*]*\*+)*
原始正则表达式中的部分不起作用。有人能给我解释一下吗?逐一解释:
\/您只找到单行注释的原因是,在典型的正则表达式中,
匹配除换行符以外的任何内容;而另一个使用的是一个否定字符类,它匹配除指定字符以外的任何字符,因此可以匹配换行符
但是,如果要解决这个问题(通常有一个多行或“好像单行”匹配选项),您会发现它将从第一条注释的/*
匹配到最后一条注释的*/
;您必须使用一个非贪婪量词,*?
,以匹配最多一条注释
但是,您给出的更复杂的正则表达式甚至比这更复杂。根据nikc.org的回答,我认为这是为了实施“评论不能嵌套”的限制;也就是说,它们不能包含/*
。在允许注释的其他语言中,如/*this*/
(即内部/*既不是禁止的,也不是嵌套注释),模式\/\*.*?\*\/
适合匹配它们 @kev那个链接对我以后会很有用。。非常感谢。:)@Vigneshwaran回答之后,我找到了Regexper,当我需要深入了解regexp时,我经常使用它。请看下面我的答案,在你的问题中有一个关于正则表达式分解的链接。喜欢分解每个部分的意思,你不会经常得到这个