Добавить символ к каждому числу через Regex в Notepad ++

10

У меня есть очень простой вопрос, который я просто не могу понять. У меня есть текстовый документ, как это:

This is 5 a test!
This 3 is a test!
This is a 9 test!

и я хочу, чтобы это выглядело так:

This is 5c a test!
This 3c is a test!
This is a 9c test!

Означает, что я хочу добавить «с» для каждого числа, которое я найду. Я попробовал это:

Find what: [0-9]+]
Replace with: $1c
Search Mode: Regular expression

но я явно делаю что-то не так, потому что это не работает. Помощь будет оценена. Спасибо!

user3877230
источник
3
Просто из любопытства: почему ты попробовал [0-9]+]с этими странными непревзойденными скобками?
Хайнци
2
@Heinzi пари , что это опечатка в вопросе, учитывая близость +, ]и Enterна многих клавиатурах.
Гонки

Ответы:

26

Вы почти поняли это правильно.

Вы хотите найти ([0-9]+)
и заменить это на$1c

Вы используете ( )для создания группы захвата, так что $ 1 работает.

Кроме того, вы можете заменить $0cвместо этого, тогда вам не нужно использовать группу захвата.

LPChip
источник
2
Работает отлично. Большое спасибо;)
user3877230
Просто любопытно, если есть разница в этом шаблоне и ищет \d+?
Брюс Уэйн
2
@BruceWayne В зависимости от типа вашего регулярного выражения \dможет совпадать с цифрами Unicode из других сценариев . Обратите внимание, что это не относится к PCRE, который, очевидно, использует Notepad ++. В любом случае, я бы предпочел, \dчтобы мне требовались числовые цифры, но [0-9]если бы я явно хотел эти символы (например, при очистке определенного формата, ограниченного символами ASCII).
Боб
Действительно, \ d сработало бы так же хорошо. Я сохранил синтаксис [0-9], потому что OP уже пробовал это, а другой ответ использует \ d.
LPChip
13
  • Ctrl+H
  • Найти то, что: \d+
  • Заменить: $0c
  • проверить обернуть
  • проверьте регулярное выражение
  • Replace all

Результат для данного примера:

This is 5c a test!
This 3c is a test!
This is a 9c test!
Toto
источник
Что делать вокруг?
Ooker