如何在正则表达式中匹配空格、换行符
How to match space, newline in regexp
字符串内容
<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>
.JS
var content = ...;
var reg = /<!--['s't'n]*?@require (.+?)['s't'n]*?-->/g;
var r;
while((r = reg.exec(content)) != null) {
console.log(r[1]);
}
输出
a.css
BOWER/jquery
/build/bundle
它与最后一个块不匹配,我的reg表达式中错过了什么。
(Dot)。匹配除换行符以外的任何字符,这就是最后一个字符串不匹配的原因。因此,您可以使用 ['s'S]*
或 [^]
之类的东西来匹配任何字符。( 参考 : 匹配多线图案 )
var content = `<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>`;
var reg = /<!--['s't'n]*?@require (['s'S]+?)['s't'n]*?-->/g;
var r;
while ((r = reg.exec(content)) != null) {
console.log(r[1]);
}
尝试添加多行标志 ( m
)
/<!--['s't'n]*?@require (['s'S]+?)['s't'n]*?-->/gm
试试这个
@require (.+?)?(?:-->|'s)
正则表达式演示
解释:
( … )
:捕获组样本
.
:除换行符示例
以外的任何字符 +
:一个或多个样品
?
: 一次或无样品
(?: … )
:非捕获组样本
|
: 交替/OR操作数样本
'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`
相关文章:
- 如何在正则表达式中匹配空格、换行符
- 正则表达式在换行符 前面有两个空格
- javascript 正则表达式中回车符、换行符和多个空格的匹配
- 替换 JavaScript 中的空格和换行符
- Jquery 和 Contenteditable - 强制换行符显示为单个空格
- JavaScript源代码中的换行符或空格/制表符有什么不同吗?(甚至在评论中!?
- 仅删除空换行符,保留空格
- 正则表达式删除换行符和内容之间的空格
- 删除文本中的空格,同时保留换行符
- 将换行符+4空格替换为
- 如何在javascript中用空格替换换行符
- 如何在不丢失换行符和空格的情况下将js字符串变量传递给php
- 如何在split函数中使用空格和换行符
- 将正则表达式组合为空格和换行符
- 如何防止IE将文本区换行符转换为单个空格
- 我怎样才能在一个用逗号、换行符或空格分隔的文本区域中计算唯一的电话号码数?
- 将所有空格替换为一个,但保留换行符
- 使用javascript用空格替换换行符
- JavaScript中的空格替换为换行符
- 如何清理多个空格/换行符