Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JavaScript正则表达式捕获CSS多行注释块_Javascript_Html_Css_Regex_Node.js - Fatal编程技术网

如何使用JavaScript正则表达式捕获CSS多行注释块

如何使用JavaScript正则表达式捕获CSS多行注释块,javascript,html,css,regex,node.js,Javascript,Html,Css,Regex,Node.js,我正试图用JavaScript正则表达式捕获CSS多行注释块,但我不确定如何在HTML示例中找到结束注释标记而不偶尔得到斜杠,这是一种情况: /*@comment @title: Buttons @name: block-name @category: Category name > Sub category @description: This is the description of the element @html: &l

我正试图用JavaScript正则表达式捕获CSS多行注释块,但我不确定如何在HTML示例中找到结束注释标记而不偶尔得到斜杠,这是一种情况:

/*@comment

    @title: Buttons
    @name: block-name
    @category: Category name > Sub category
    @description: This is the description of the element
    @html:
        <div class="block-name"></div>

*/
/*@注释
@标题:按钮
@名称:块名称
@类别:类别名称>子类别
@描述:这是元素的描述
@html:
*/
我正在尝试使用这个正则表达式,但我得到了结束div标记:

\/\*@注释([^\*\/]){1,}

因此,我尝试添加结束注释标记,但它只是停止工作:

\/\*@注释([^\*/]){1,}\*\/

如何找到JavaScript正则表达式来捕获整个块

请注意,我可以在每个文件中找到多个这些块,因此我将在正则表达式上使用
g
标记。

请注意,
([^\*\/]){1,}
只匹配1个或多个单个字符,而不是
*
/
,而不是作为2个字符的序列

您可以将惰性匹配(
*?
量词匹配尽可能少的字符以确保找到匹配)与
[^]
[\s\s]
(匹配任何字符的类,包括换行符):

var re=/\/\*@comment[\s\s]*?\*\//g;
var str='/*@comment\n\n@title:Buttons\n@name:block name\n@category:category name>Sub-category\n@description:这是元素的描述\n@html:\n\n\n*/';
var-m;
while((m=re.exec(str))!==null){
如果(m.index==re.lastIndex){
re.lastIndex++;
}
console.log(m[0]);

}
@MaxMastalerz
'a/*b*/c/*d*/'.match(/\/\*([^;]*)\*\\//g)
产生
[“/*b*/c/*d*/”]
而不是
[“/*b*/”,“/*d*/”]
。您也可以将regex版本与一个经过调整的贪婪标记一起使用,但我怀疑您在这里使用它的理由,因为在匹配中没有“禁止”的额外词语。
/\/\*@comment[\s\S]*?\*\//g