正则表达式匹配未注释的行

时间:2015-05-25 14:29:54

标签: javascript regex

所以我从JavaScript文件中读取了一个字符串,其中包含:

...
require('some/path/to/file.less');
...
// require('some/path/to/file.less');
...

我正在使用这个注册表:

requireRegExp = /require(\ +)?\((\ +)?['"](.+)?['"](\ +)?\)\;?/g

抓住所有这些线条。但是,我需要过滤掉评论的内容。

所以当我跑

while( match = requireRegExp.exec(str) ){
...
}

我只会获得以require ...

开头的未注释行的匹配项

2 个答案:

答案 0 :(得分:5)

regequireRegExp = /^\s*require\('([^']+)'\);/gm

说明:

^在行的开头断言位置

\s*检查空格字符0 ...多次

require匹配单词require

\(匹配字符(

'匹配字符'

([^']+)匹配任何不是' 1 ...多次

的内容

量词:+在一次和无限次之间,尽可能多次,根据需要回馈

'字面匹配字符'

\)字面匹配字符)

;字面匹配字符;

g修饰符:全局。所有比赛(首场比赛时不返回)

m修饰符:多行。导致^$匹配每行的开头/结尾(不仅是字符串的开头/结尾)

修改

显然你想要在小组中找到路径,所以我编辑了我的答案,以便更好地回答你的问题。

以下是示例:

https://regex101.com/r/kQ0lY8/3

答案 1 :(得分:2)

如果您只想与require匹配,请使用以下内容:

/^\s*require.*/gm

请参阅DEMO