1

Я пытаюсь использовать регулярные выражения редакторов Visual Studio для поиска и замены текста с помощью групп захвата, но столкнулся с проблемой.

Я пытаюсь найти и захватить набор из 5 буквенно-цифровых символов:

(\w{5})

И найдите и замените эту группу, добавив после нее "1":

$11

Здесь я действительно имею в виду $1 Захваченная группа + 1 текст для добавления

Примеры:

 227TW ==> 227TW1
 1053X ==> 1053X1

Тем не менее, он явно интерпретирует $11 как "Захват одиннадцатой группы".

Как правильно понять, что Поиск / Замена понимают, что $1 и 1 - это отдельные элементы?

Вещи, которые я пробовал, которые не удалось:

$1(1)  : 227TW ==> 227TW(1)
$1\1   : 227TW ==> 227TW\1
$1 1   : 227TW ==> 227TW 1
$1^1   : 227TW ==> 227TW^1
($1)1  : 227TW ==> (227TW)1

2 ответа2

2

Оказывается, правильный ответ:

${1}1

Фигурные скобки вокруг номера идентифицируют группу захвата, не путая ее со следующей цифрой.

0

Не уверен, что VS поддерживает lookbehind, но если это так, вы можете использовать:

  • Найти: (?<=\w{5}) утверждение нулевой длины, чтобы убедиться, что у нас есть 5 символов слова перед текущей позицией
  • Заменить: 1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .