Заменить строку, но сохранить ее часть в Notepad++

Заменить строку, но сохранить ее часть в Notepad++

Я хочу использовать 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: захваченное значение).

Прилагаю пример скриншота.

Замена регулярных выражений в Notepad++

решение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};

Связанный контент