`gulp-replace` 只是替换了部分目标,而不是全部目标
`gulp-replace` is only replacing some, but not all, of the targets
gulp-replace
并没有替换它应该替换的所有内容。
我正在尝试替换 <li>
,但它只是删除了其中的一部分。当我添加一个列表项时,它被成功删除,但原始文档中的列表项却没有。如果我 copy/paste 将 <li>
放入新文件中,这甚至是正确的。
test.html为源文件
<h2>Copied from source:</h2>
<ul>
<li class="Bullets">Athletics</li>
<li class="Bullets">Burglary</li>
</ul>
<h2>Entered in Sublime Text 2</h2>
<ul>
<li>Lorem ipsum dolor sit amet.</li>
<li>Eos ipsam in dolorum odio!</li>
<li>Illum asperiores eligendi, iure tempora.</li>
<li>Reprehenderit blanditiis repudiandae ex eligendi.</li>
</ul>
test.md就是输出的内容。请注意,我在 Sublime Text 中输入的 <li>
已被删除,但其他的没有。
<h2>Copied from source:</h2>
<ul>
<li class="Bullets">Athletics</li>
<li class="Bullets">Burglary</li>
</ul>
<h2>Entered in Sublime Text 2</h2>
<ul>
Lorem ipsum dolor sit amet.</li>
Eos ipsam in dolorum odio!</li>
Illum asperiores eligendi, iure tempora.</li>
Reprehenderit blanditiis repudiandae ex eligendi.</li>
</ul>
gulpfile.js
(function () {
'use strict';
var gulp = require('gulp');
var replace = require('gulp-replace');
var dest = require('gulp-dest');
gulp.task('replace', function(){
gulp.src(['source/*.html'])
.pipe(replace('<li>',''))
.pipe(dest('dest', {ext: '.md'}))
.pipe(gulp.dest('./'));
});
})();
感谢任何帮助!谢谢!
你不能在replace
函数中传递tag
,replace
可以用string或regex调用.
要匹配所有 li
标签,您可以尝试使用此 regex
:
.pipe(replace(/\<li.+li\>/g, '')
另一个正则表达式答案:
.pipe(replace(/<\s*li[^>]*>(.*?)<\s*\/\s*li>/g, '')
gulp-replace
并没有替换它应该替换的所有内容。
我正在尝试替换 <li>
,但它只是删除了其中的一部分。当我添加一个列表项时,它被成功删除,但原始文档中的列表项却没有。如果我 copy/paste 将 <li>
放入新文件中,这甚至是正确的。
test.html为源文件
<h2>Copied from source:</h2>
<ul>
<li class="Bullets">Athletics</li>
<li class="Bullets">Burglary</li>
</ul>
<h2>Entered in Sublime Text 2</h2>
<ul>
<li>Lorem ipsum dolor sit amet.</li>
<li>Eos ipsam in dolorum odio!</li>
<li>Illum asperiores eligendi, iure tempora.</li>
<li>Reprehenderit blanditiis repudiandae ex eligendi.</li>
</ul>
test.md就是输出的内容。请注意,我在 Sublime Text 中输入的 <li>
已被删除,但其他的没有。
<h2>Copied from source:</h2>
<ul>
<li class="Bullets">Athletics</li>
<li class="Bullets">Burglary</li>
</ul>
<h2>Entered in Sublime Text 2</h2>
<ul>
Lorem ipsum dolor sit amet.</li>
Eos ipsam in dolorum odio!</li>
Illum asperiores eligendi, iure tempora.</li>
Reprehenderit blanditiis repudiandae ex eligendi.</li>
</ul>
gulpfile.js
(function () {
'use strict';
var gulp = require('gulp');
var replace = require('gulp-replace');
var dest = require('gulp-dest');
gulp.task('replace', function(){
gulp.src(['source/*.html'])
.pipe(replace('<li>',''))
.pipe(dest('dest', {ext: '.md'}))
.pipe(gulp.dest('./'));
});
})();
感谢任何帮助!谢谢!
你不能在replace
函数中传递tag
,replace
可以用string或regex调用.
要匹配所有 li
标签,您可以尝试使用此 regex
:
.pipe(replace(/\<li.+li\>/g, '')
另一个正则表达式答案:
.pipe(replace(/<\s*li[^>]*>(.*?)<\s*\/\s*li>/g, '')