Время и время снова я вижу, что в коде используются $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