reg ex source папка с изображениями
Я пытаюсь создать регулярное выражение для обнаружения любых ссылок на изображения в HTML, CSS или JavaScript, принимая во внимание различные шаблоны, которые может использовать ссылка на источник изображения.
Это должно изменить путь URL всех изображений как часть задачи gulp-replace.
Это те случаи, которые, я думаю, мне нужно
"../img/hero/layer4.png
"../images/bg-top.jpg
'img/logo.jpg
'img/btn/banner-submit.jpg
"img/btn/animated-thank-you-banner.gif
И это то, что я до сих пор для регулярного выражения
(?:(\.\.\/)|)(img|imgs|image|images)(.*[\\\/])
https://regex101.com/r/kF7hG0/2
К сожалению это, кажется, соответствует img
тег
<img src="img/
Как я могу изменить reg ex, чтобы захватывать все после "или", по сути путь к изображению без имени файла и расширения?
Регулярное выражение выполняется как часть этой задачи
gulp.task('html', function () {
gulp.src(source + '**/*.+(html|php)')
.pipe($.plumber())
.pipe($.inline({
base: source,
js: $.uglify,
css: $.cleanCss,
disabledTypes: ['svg', 'img']
}))
.pipe($.replace(/("|')(?:(\.\.\/))?(?:img|image|images)(.*[\\\/])/g, '"' + mtkosrc + campaign +'-'))
.pipe(gulp.dest(build))
});
Спасибо
1 ответ
(?:(\.\.\/)|)(?!img src)(img|imgs|image|images)(.*[\\\/])
я добавил (?!img src)
к вашему оригинальному регулярному выражению. Это отрицательное предположение о том, что следующий текст не будет img src
,
Для получения дополнительной информации об косвенных утверждениях: http://www.regular-expressions.info/lookaround.html
(Это быстрое исправление для существующего регулярного выражения, так как я уверен, что мы можем переписать его, чтобы сделать его более быстрым и интуитивно понятным.)