使用正则表达式跳过一个单词

时间:2014-04-18 10:58:03

标签: regex

我使用sublime列出我的应用程序中的所有.js文件,但我想使用正则表达式只显示未缩小的文件。我想要返回的文件是[NOT] .min [/ NOT] .js我正在使用[^(\。min)] \。js它似乎工作但不确定它是否会错过任何文件。是否有更好的正则表达式在这里使用?

/showhouse-bootstrap-datepicker.js      want returned
/dataTables.bootstrap.js                want returned
/additional-methods.min.js              dont want returned
/bootstrap-switch.min.js                dont want returned

我认为以下内容可行,但它会返回所有.js

(?!\.min)\.js

2 个答案:

答案 0 :(得分:1)

而不是以not的方式进行,而是以积极的搜索方式进行。

[^(\.min)]\.js就是你所做的。这与任何以js结尾的文件都不匹配,其中包含mni。检查一下。

使用这样的正则表达式。

(?<!\.min)\.js

演示:http://regex101.com/r/rJ1jN3

答案 1 :(得分:0)

Sublime Text使用Boost正则表达式语法,因此您可以使用对匹配*.min.js和/或*.js的项目进行分组的模式,然后使用反向引用来匹配子表达式:

^(.+w+\.js)|(.+\w+\.min\.js)\1$

第一个模式^(.+\w+\.js)将与*.js匹配的任何内容分组到子表达式1中,第二个模式(.+\w+\.min\.js)将任何匹配的*.min.js放入子表达式{ {1}}。最后一步是使用对2转义的子表达式1的反向引用。

<强>字符串:

\1

<强>匹配

something.min.js
min.js
1234.js
submin.js
file.js
admin.js
script.min.js
gar.min.js
garmin.min.js
harmin.marmin.min.js
garmin.js