Замена строк с помощью 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
, и оба они были заменены, но ни один из них не работал:
-
match : /"images/g
match : /"images/g
-
match : /("images)/g
/ / работает при тестировании на http://regex101.com/r/tU5iM3/2 -
match : /("images)/g
/ / работает при тестировании на http://regex101.com/r/tU5iM3/3
Кто я такой? пропал здесь?
Обновление
Я добавил раздел 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 ответ:
Во-первых, ваши ссылки regex101 указывают на код, использующий библиотеку регулярных выражений Python, а не JavaScript, который использует Grunt. Далее, символы
(
и\
должны быть экранированы, но ни один из других не делает этого. Регулярное выражение, которое вы ищете, это:/url\("images\//g
(см. https://regex101.com/r/aY9hY0/1 играть с ним)