Блокнот ++ Найти и заменить синтаксис, нужна помощь - PullRequest
0 голосов
/ 20 февраля 2012

Я очень новичок в Notepad ++ и мне нужно немного помочь с функциями поиска и замены.У меня есть код для станка с ЧПУ, который выглядит следующим образом:

G1 X0.625 Z1.242 F500.0
G1 Z0.099 A358.475 F500.0
G1 X0.542 Z1.247 F500.0
G1 Z0.100 A356.949 F500.0
G1 X0.458 Z1.254 F500.0
G1 Z0.102 A355.424 F500.0
G1 X0.375 Z1.263 F500.0

Мне нужно найти каждую строку, содержащую X, и заменить значение от F500.0 до F5.0.Какой синтаксис я должен использовать?Заранее спасибо.

Ответы [ 4 ]

2 голосов
/ 20 февраля 2012

Я думаю, что это будет работать, но это зависит от изменчивости ваших данных:

(G1[ ]+X.+[ ]+[A-Z0-9.]+[ ]+)F500\.0

и замените на

\1F5.0

Это собирает все слева от F500.0 (... - получить буквальный период. Я вставил литерал G1, затем пробелы, затем X, затем что-нибудь, затем пробелы, затем повторения слов, числа и период, затем, наконец, F500.0.

Я заменяю это на \ 1, то есть материал, собранный в скобках, за которым следует F5.0.

Ссылка: NotePad ++ Синтаксис регулярного выражения

Обновление: добавлена ​​ссылкав NotePad ++ Синтаксис регулярного выражения

1 голос
/ 20 февраля 2012

Искать: (X.*)F500\.0

и заменять на: \1F5.0

0 голосов
/ 20 февраля 2012

Notepad ++ использует базовый синтаксис регулярных выражений . Итак, у вас будет много проблем, когда вы попытаетесь использовать его как Perl-совместимое регулярное выражение (PCRE).

Лучший способ сделать это - использовать инструмент, который действительно предназначен для таких задач. SED, или Perl один лайнер. Например:

sed -i -r 's/(X.*)F500\.0/\1F5.0/g' yourFile

Переключатель -i предназначен для редактирования на месте, а -r - для расширенного синтаксиса регулярных выражений. Конечно, установка sed на windows раздражает.

Итак, вам может повезти с маленьким скриптом на python или perl. Другой выбор - макрос notepad ++.

Edit:

Как указал мне M42, notepad ++ на самом деле поддерживает группировки, вроде .

0 голосов
/ 20 февраля 2012

Нажмите ctrl+h в первом поле, введите то, что вы хотите найти, во втором - то, что вы хотите заменить.

...