javascript正则表达式单行

标签 javascript regex node.js

我正在尝试用一个字符串替换所有@import 字符串,例如

var str = 'buttons .reprint{height:56px;background-position:-47px -1496px;}@import "../common/buttons.css";@import "../screen/screen-1.css";@import "../screen/screen-2.css";@import "../screen/screen-3.css";@import "../screen/screen-5.css";@import "../screen/screen-6.css";@import "../screen/screen-7.css";@import "../screen/screen-quick-messages.css";@import "../screen/reset-password.css";#xml-data{display:none;}body{font-family:"Helvetica Neue",HelveticaNeue,Helvetica-Neue,Helvetica,sans-serif;}ul{padding:0;}body,section{width:768px;}';

如果我这样写就可以了:

console.log(str.match(/@import\ /g));

但是如何在一行中指定所有@import 声明,例如@import "../screen/screen-1.css";

console.log(str.match(/@import\ .+;/g));

不起作用。

最佳答案

如果我错了请纠正我,但似乎 @import 总是具有这种格式:

@import (whitespace) (quote) (one or more non-quote characters) (quote) (semicolon)

如果这是真的,那么让我们相应地构建正则表达式:

 /@import\s*"[^"]+";/

这应该分别匹配每个 @import 语句。

关于javascript正则表达式单行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4172175/

相关文章:

javascript - 具有多个操作的 backbone.js 路由器

javascript - 检查 .map() 方法中的匹配字符串

javascript - 从 jQuery .click 增加一个变量

c# - 重复一个组的值与另一个组的值一样多的次数

openshift 上的 Node.js 应用程序

javascript - Dojo Internet Explorer 6 png 问题

javascript - Javascript 中十进制输入的正则表达式,小数点前有 1 到 3 位数字,小数点后有 1 到 3 位数字

python-3.x - 匹配两个lookbehinds之一

node.js - 当一个 Node.js 进程可以直接退出()而不触发其他信号事件(uncaughtException,SIGINT,SIGTERM ...)

javascript - 为什么 fs.write 中出现 "bad argument"错误