Важно: используйте ( )
скобки в строке поиска
Хотя предыдущий ответ верен, важно подчеркнуть это! Все совпадающие сегменты в строке поиска, которые вы хотите использовать в замещающей строке, должны быть заключены в ( )
скобки , в противном случае эти совпадающие сегменты не будут доступны для определенных переменных, таких как $1
, $2
или \1
, \2
и т. Д.
Например, мы хотим заменить «em» на «px», но сохранить цифровые значения:
margin: 10em; /* Expected: margin: 10px */
margin: 2em; /* Expected: margin: 2px */
- Строка замены:
margin: $1px
илиmargin: \1px
- Строка поиска (ПРАВИЛЬНО):
margin: ([0-9]*)em
// с круглыми скобками
- Строка поиска (НЕПРАВИЛЬНО):
margin: [0-9]*em
ПРИМЕР ПРАВИЛЬНОГО СЛУЧАЯ: Использование margin: ([0-9]*)em
строки поиска (с круглыми скобками). Заключите желаемый совпадающий сегмент (например, $1
или \1
) в ( )
круглые скобки следующим образом:
- Найти:
margin: ([0-9]*)em
(с круглыми скобками)
- Заменить на:
margin: $1px
илиmargin: \1px
- Результат:
margin: 10px;
margin: 2px;
НЕПРАВИЛЬНЫЙ ПРИМЕР ПРИМЕРА: Использование margin: [0-9]*em
строки поиска (без скобок). Следующий шаблон регулярного выражения будет соответствовать желаемым строкам, но совпадающие сегменты не будут доступны в замененной строке в качестве переменных, таких как $1
или \1
:
- Найти:
margin: [0-9]*em
(без скобок)
- Заменить на:
margin: $1px
илиmargin: \1px
- Результат:
margin: px; /* `$1` is undefined */
margin: px; /* `$1` is undefined */
$0
?