Замена строк с помощью grunt-replace


Я хотел бы заменить строку url("images/ на другую строку, например ZZZZZZZZZZZZ, используя grunt-replace.

Я использую следующую конфигурацию:

replace: {
    dist: {
        options: {
            patterns: [
                {
                    match: /"/g,
                    replacement: 'ZZZZZZZZZZZZ'
                }
            ]
        },
        files: [
            {
             expand: true, flatten: true, 
             src: ['dist/app/css/app.css'], dest: 'dist/app/css2/'
            }
        ]
    }
}

Я пробовал match: /"/g и /images/g, и оба они были заменены, но ни один из них не работал:

Кто я такой? пропал здесь?

Обновление Я добавил раздел files моего примера grunt-replace configuration + working /images/g. Я использую некоторые другие задачи Grunt, и Grunt replace-последняя из них:

grunt.registerTask('default', ['useminPrepare', 'copy', 'concat', 'uglify', 'cssmin', 'usemin', 'replace']);

Но я не вижу, как это может сломать мое регулярное выражение replace. Я проверяю свою конфигурацию, запустив команду: grunt -v --stack && grep -R "ZZZZZZZZZZZZ" .

1 3

1 ответ:

Во-первых, ваши ссылки regex101 указывают на код, использующий библиотеку регулярных выражений Python, а не JavaScript, который использует Grunt. Далее, символы ( и \ должны быть экранированы, но ни один из других не делает этого. Регулярное выражение, которое вы ищете, это:

/url\("images\//g

(см. https://regex101.com/r/aY9hY0/1 играть с ним)