Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
perl惰性匹配外部文件与正则表达式_Perl - Fatal编程技术网

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