Время и время снова я вижу, что в коде используются $1 и $2. Что это значит? Не могли бы вы привести примеры?
Что означает $1, $2 и т.д. В регулярных выражениях?
Ответ 1
При создании регулярного выражения у вас есть возможность захвата частей матча и сохранения их в качестве заполнителей. Они нумеруются начиная с $1
.
Например:
/A(\d+)B(\d+)C/
Это будет захватывать из A90B3C
значения 90
и 3
. Если вам нужно группировать вещи, но не хотите их захватывать, используйте (?:...)
версию вместо (...)
.
Цифры начинаются слева направо в том порядке, в котором скобки открыты. Это означает:
/A((\d+)B)(\d+)C/
В соответствии с той же строкой будут записаны 90B
, 90
и 3
.
Ответ 2
Это особенно. полезно для Синтаксис строкой замены (т.е. Форматирование строк) Хорошо подходит для фраз для случаев и случаев для поиска и замещения. Чтобы ссылаться на захват, используйте $n, где n - номер регистра захвата. Использование $0 означает весь матч. Пример: Find: (<a.*?>)(.*?)(</a>) Replace: $1\u$2\e$3