Javascript 如何在regexp中匹配空格、换行符
字符串内容Javascript 如何在regexp中匹配空格、换行符,javascript,regex,Javascript,Regex,字符串内容 <head> <meta charset="UTF-8"> <title></title> <!--@require a.css--> <!--@require BOWER/jquery--> <!--@require /build/bundle--> <!-- @require bootstrap @require
<head>
<meta charset="UTF-8">
<title></title>
<!--@require a.css-->
<!--@require BOWER/jquery-->
<!--@require /build/bundle-->
<!--
@require bootstrap
@require bootstrap.css
@require bootstrap.font
-->
</head>
它与最后一个块不匹配,我的reg表达式中遗漏了什么。(点)。匹配除换行符以外的任何字符,这就是最后一个字符串不匹配的原因。因此,您可以使用类似于[\s\s]*
或[^]
的内容来匹配任何字符。(参考号:)
var内容=`
`;
var reg=//g;
var-r;
while((r=reg.exec(content))!=null){
console.log(r[1]);
}
尝试添加多行标志(m
)
//gm
试试这个
@require (.+?)?(?:-->|\s)
说明:(…)
:捕获组
:除换行符以外的任何字符+
:一个或多个?
:一次或无(?:…)
:非捕获组|
:交替/或操作数\s
:“空白字符”:空格、制表符、换行符、回车符、垂直制表符
输出:
MATCH 1
1. [71-76] `a.css`
MATCH 2
1. [97-109] `BOWER/jquery`
MATCH 3
1. [130-143] `/build/bundle`
MATCH 4
1. [173-182] `bootstrap`
MATCH 5
1. [200-213] `bootstrap.css`
MATCH 6
1. [231-245] `bootstrap.font`
\s
匹配任何类型的空格,包括换行符。
/<!--[\s\t\n]*?@require ([\s\S]+?)[\s\t\n]*?-->/gm
@require (.+?)?(?:-->|\s)
MATCH 1
1. [71-76] `a.css`
MATCH 2
1. [97-109] `BOWER/jquery`
MATCH 3
1. [130-143] `/build/bundle`
MATCH 4
1. [173-182] `bootstrap`
MATCH 5
1. [200-213] `bootstrap.css`
MATCH 6
1. [231-245] `bootstrap.font`