perl惰性匹配外部文件与正则表达式
我有一个perl惰性匹配外部文件与正则表达式,perl,Perl,我有一个index.html文件,其中包含如下字符串: vendor.adsf34.bundle.js blah blah blah inline.1r34afer.bundle.js 我构建了以下代码(mac,iterm2): 然而,我最终得到了: vendor.js 也就是说,它似乎是贪婪的匹配,我需要它是懒惰的 我试图做的是缩短js名称,例如: vendor.js blah blah inline.js 很高兴能得到一些指点 也许是这样的 查找固定起始字符串(供应商。或内联。)1 查找一
index.html
文件,其中包含如下字符串:
vendor.adsf34.bundle.js blah blah blah inline.1r34afer.bundle.js
我构建了以下代码(mac,iterm2):
然而,我最终得到了:
vendor.js
也就是说,它似乎是贪婪的匹配,我需要它是懒惰的
我试图做的是缩短js名称,例如:
vendor.js blah blah inline.js
很高兴能得到一些指点 也许是这样的
- 查找固定起始字符串(
或供应商。
)1内联。
- 查找一个或多个非空格字符
- 查找固定端字符串(
).js
- 将其替换为1+
.js
$echo“vendor.adsf34.bundle.js blah blah blah inline.1r34afer.bundle.js”| perl-pe的/(vendor | inline)\.\s+\.js/\1.js/g
vendor.js blah blah inline.js
我无法重现你的问题。仔细想想,是的,你的例子也适用于我。不过,惰性匹配运算符效率很低。。。
perl -i -pe 's/vendor\..+?\.js/vendor.js/g;' index.html
perl -i -pe 's/inline\..+?\.js/inline.js/g;' index.html