Используйте обратную ссылку регулярного выражения в расчетах (Java, Netbeans и не только)

В Netbeans команда «Заменить» (ctrl + H) имеет флажок регулярного выражения, чтобы я мог искать и заменять в документе с помощью регулярных выражений. Также я могу заменить, используя обратную ссылку.

Вопрос в том, могу ли я использовать обратную ссылку в расчете, а затем использовать ее?

Например, с использованием "([0-9]{1})" в "Найти что" я найду все числа, а с использованием "$1a" в "заменить на" приводит к замене всех чисел с самим номером, за которым следует буква а.

123456--->1a2a3a4a5a6a

Я хочу добиться замены 123456 на 234567, поэтому я хочу знать, могу ли я использовать что-то вроде ($ 1 + 1) в «заменить на» или есть ли другой способ сделать это, НО ТОЛЬКО с регулярным выражением (не в MS Excel или что-то еще похожий)

Спасибо


person Argiropoulos Stavros    schedule 28.04.2010    source источник
comment
Это маловероятно. Кстати, что бы вы сделали с 9? Если это одноразовая вещь, вы можете заменить 6-->7, 5-->6, 4-->5 и т. д. Неприятно, но вы справитесь с этим за несколько минут.   -  person Kobi    schedule 28.04.2010
comment
С другой стороны, нет никакой причины использовать квантификатор {1} в регулярном выражении. Его эффект точно такой же, как и при полном отсутствии квантификатора, так что это чистый беспорядок.   -  person Alan Moore    schedule 28.04.2010


Ответы (2)


Простой ответ: нет, это невозможно.

person Bart Kiers    schedule 28.04.2010

Notepad++ делает именно это. Я не узнал, как netbeans достигает этого.

В Notepad++ вы можете ссылаться на выражение, завернутое в (), такое как ваш [0-9]{1}, либо в текущем выражении снова, либо в качестве замены, используя \1 для первого () набора , \2 для второго и так далее.


Пример: поиск значения RGB в шестнадцатеричном формате 0xAA33FF и преобразование его в формат '#AA33FF' можно выполнить с помощью выражения поиска: 0x([0-9a-fA-F]{6}) и выражения замены: '#\1'

person user1895593    schedule 09.03.2013