繁体   English   中英

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

[英]Regex match lines that are not commented

所以我从JavaScript文件读取了一个字符串,它将具有:

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

我正在使用这个注册表:

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

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

所以,当我跑

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

我将只获得以require开头的未注释行的匹配...

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

说明:

^断言一行开头的位置

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

require匹配单词require

\\(匹配角色(

'匹配角色'

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

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

'匹配字符'字面上

\\) )字面上匹配字符

; 匹配角色; 按照字面

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

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

编辑

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

这是一个例子:

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

如果您只想匹配那些require使用以下内容:

/^\s*require.*/gm

DEMO

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM