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

(Это быстрое исправление для существующего регулярного выражения, так как я уверен, что мы можем переписать его, чтобы сделать его более быстрым и интуитивно понятным.)

Другие вопросы по тегам