首页 > 解决方案 > URL 和排除扩展标志中多个文件夹名称的正则表达式

问题描述

我正在处理多个 js 文件以通过 webpack 构建捆绑包。但是,我需要定位多个 js 文件以跨多个文件夹进行处理,同时能够排除文件名中带有某些标志的 js 文件。

我有以下文件:

/styles/portal/version2/libraries/jquery.js
/styles/portal/version2/libraries/library.exclude.js
/styles/portal/version2/components/componenta.js
/styles/portal/version2/konstructs/konstructa.js
/styles/portal/version2/konstructs/konstructb.js
/styles/portal/version2/konstructs/konstructc.js
/styles/portal/version2/konstructs/konstructd.disabled.js
/styles/portal/version2/vendors/vendor.js
/styles/portal/version2/vendors/vendor.exclude.js

这应该只抓取以下文件进行捆绑:

/styles/portal/version2/libraries/jquery.js

/styles/portal/version2/konstructs/konstructa.js
/styles/portal/version2/konstructs/konstructb.js
/styles/portal/version2/konstructs/konstructc.js

/styles/portal/version2/vendors/vendor.js

所以本质上是特定konstructs供应商文件夹中的任何 .js 文件,然后不包含disabled.jsexclude.js的任何内容

标签: javascriptregex

解决方案


要获取在文件的文件名部分中libraries, konstructs or vendors包含
non- disablednor的三个目录,请执行以下操作: exclude.js

/^.*?\/(?:libraries|konstructs|vendors)(?=\/)(?:[^\/.]*\/)*(?![^\/]*?\b(?:disabled|exclude)(?=\.)[^\/]*?\.js$)[^\/]*?\.js$/gm

https://regex101.com/r/rTUfeQ/1

注意,如果查看多行字符串,请使用多行修饰符。
如果没有,则不需要它。


推荐阅读