Извиняюсь за упрощенный вопрос. Я отредактировал его, чтобы отразить более сложный вопрос. Отправка ответа в надежде вернуть ответ.
Я должен был указать, что выборочные данные могут быть десятичными (9,2) или плавающими, или даже десятичными (9,4). так что это намного сложнее, чем просто поиск и замена. Извините, что пытался упростить публикацию, я слишком упрощен !!
Оказалось, что правильный регистр неверен. * Так как это жадное совпадение, мне нужно было использовать. *? соответствовать только первому оператору AND после net_price. Поскольку жадное совпадение будет соответствовать последнему шаблону, который он может найти, а затем оглянуться назад, чтобы соответствовать последнему AND. который выделил бы слишком большую часть строки - вот в чем заключалась моя проблема.
Таким образом, регулярное выражение становится: cast\((net_price).*?\=(.*?) AND
которое:
finds cast(
finds net_price and puts it into capture group 1
non greedy scans until it finds an equals character
captures non greedily the value into group 2
finds the AND
, которое захватывает в 2 группы net_price всегда в группа 1 и переменная / количество всегда в группе 2, все остальное переписывается:
Замена становится: ROUND\($1,2\)=$2 AND
, который заменяет $ 1 (группа захвата 1) на net_price и $ 2 ( захватить группу 2) со значением.
notepad ++ окно поиска и замены: