Я хочу использовать Notepad++ для поиска/замены больших фрагментов кода:
У меня много:
углы[]={6.2744589,5.4066987,1.4066987};
с 3 значениями. Мне нужно поместить все первые и вторые значения в 0 и сохранить значение в третьей позиции :S
углы[]={6.2744589,5.4066987,1.4066987};
к
углы[]={0,0,1.4066987};
Спасибо!
решение1
Это можно сделать с помощью поиска и замены регулярных выражений в Notepad++.
Находить:angles\[\]={\d+\.\d+,\d+\.\d+,(\d+\.\d+)};
Заменить:angles[]={0,0,\1}
Обратите внимание, что в выражении выше мы экранируем скобки, отсюда и наличие обратной косой черты (), третья группа — это группа захвата (между скобками). В конце мы выполняем замену для первой и второй групп, и третья группа — это исходное значение (называемое \1
: захваченное значение).
Прилагаю пример скриншота.
решение2
- Ctrl+H
- Найти то, что:
\bangles\[\]=\{\K[^,]+,[^,]+
- Заменить:
0,0
- Replace all
Объяснение:
\b : word boundary, to be sure to match angles but not somethingangles
angles : literally angles
\[\]=\{ : literally []=, brackets have to be escaped as they have special meaning in regex
\K : Forget all we have seen until this point
[^,]+ : 1 or more any character that is not a comma, that matches also negative values
, : a comma
[^,]+ : 1 or more any character that is not a comma
- Проверьте регулярное выражение
- НЕ ПРОВЕРЯТЬ
. matches newline
Результат для данного примера:
angles[]={0,0,1.4066987};