Обычно полностью зависит от вашего движка регулярных выражений (я не знаком с теми, кто использует $1
для представления группы захвата, я больше привык к \1
, но у вас возникла бы та же проблема).
Некоторые предоставляют разделитель, который вы можете использовать, например:
replace pattern = "${1}2.NS"
, который ясно указывает на то, что вы хотите захватить группу 1, за которой следует литерал 2.NS
.
На самом деле, глядя на эту страницу , кажется, что это в точности способ сделать это (при условии .NET):
Для замены первой обратной ссылкой, за которой сразу следует цифра 9, используйте ${1}9
. Если вы введете $19
, а обратных ссылок будет меньше 19, $19
будет интерпретирован как буквальный текст и появится в строке результата как таковой.
Также имейте в виду, что Джей дает превосходный ответ для этого конкретного варианта использования, который вообще не требует групп захвата (просто заменив .NS
на 2.NS
).
Вы можете рассмотреть это как возможность - я оставлю этот ответ здесь, так как:
- это принятый ответ; и
- это, вероятно, лучше для более сложных случаев, таких как изменение
X([A-Z])4([A-Z])
на X${1}5${2}
, где у вас есть переменный текст по обе стороны от бита, который вы хотите изменить.