使用 Regexp JavaScript 从源文件中查找所有导入的文件名



我是正则表达式和JavaScript的新手。
我正在尝试使用正则表达式创建源文件的所有导入文件的数组。
在导入语句之前,还会有一个"@"符号。例如:

如果文件看起来像


@import文件1,文件2,文件3;
整数 i=6;
@import文件4;

然后我需要一个带有 [文件1,文件2,文件3,文件4] 的数组

到目前为止,我试图创建Reg Exp本身,但没有成功。
有什么帮助吗?
谢谢编辑以使事情更清晰

问题(+演示)的复杂解决方案:

function run() {
  
  var 
    re = /(?:@import)s+([^;]+)/igm,
    str = document.getElementById('demo').value,
    arr = [];
  while (result = re.exec(str)) {
    arr = arr.concat(result[1].split(/[,s]+/))
  }
  //console.log(arr);
  
  document.getElementById('result').innerHTML = JSON.stringify(arr);
}
<p>
  <textarea id="demo" cols="50" rows="15">
  // .....
  
  @import file1,file2, file3; 
  
  int i=6;
    
  @import file4;
  
  // .....
  </textarea>
</p>
<p>
  <span id="result" style="color:green;"></span>
</p>
<p>
  <input type="button" value="RUN" onclick="run()">
</p>

运行我的演示,看看结果。

您可以将

String.prototype.split()RegExp /@import|,|;|s/一起使用,Array.prototype.filter()与参数一起使用Boolean

text.split(/@import|,|;|s/).filter(Boolean)

普罗提 http://plnkr.co/edit/OpLBFMehRjC1sm1GA9BL?p=preview

最新更新