2014-12-26 4 views
0

Я только что узнал о регулярном выражении, и это все еще довольно сбивает с толку.Использование RegEx для поиска и замены номера в блоке Notepad ++

Для начала у меня есть файл в Notepad ++ с 500k строк. Примерно в строке 394900 используется некоторый статический контент, который необходимо заменить. Это не так много сделать вручную, но только для изучения пурпурных я хотел бы сделать это через RegEx.

линии содержат следующие строки в то время как X является RandomNumber: {х 0.xxxxx xx.xxx} Теперь я должен заменить второй номер каждой строки перед .xxxxx

Итак, чтобы сделать его коротким : {x 0.xxxxx xx.xxx} должно быть заменено на {x 8.xxxxx xx.xxx} в каждой строке.

Что было бы самым простым способом сделать это с помощью регулярного выражения?

+0

является фиксированной .xxxxx 5 цифр с последующим пробелом? – SMA

+0

попробуйте это http://markantoniou.blogspot.com/2008/06/notepad-how-to-use-regular-expressions.html –

+0

Пожалуйста, укажите, что вы пробовали. Поскольку вы только что узнали о регулярном выражении, еще более важно знать, что вы понимаете, а что нет – Jerry

ответ

0

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

\d+(?=\.\d{5}\s) 

Затем замените совпадающий номер с 8. Он соответствует числу, только если за ним следует точка, а затем 5-значное число и пробел.

DEMO

+0

спасибо. это и сделал трюк. также большое спасибо за URL-адрес сайта regex101. Это даже объясняет, как все это работает. это наверняка поможет мне в будущем понять регулярное выражение :-) – StUffz

+0

Добро пожаловать. –

1

Использование \d для представления цифры:

Заменить (\{\d)\d(\.\d{5} \d{2}\.\d{3}\})

с \18\2 (первой группы, то цифра 8, а затем второй группы).

Если явные кванторы (например \d{3}) не поддерживаются, используйте \d+ вместо (то есть один или несколько цифр):

Без явных кванторов (для NPP версии < 6):

Replace (\{\d)\d(\.\d+ \d+\.\d+\}) с \18\2.

+0

Я думаю, что этого '\ d (\. \ D {5})' будет достаточно. –

Смежные вопросы