Я редактирую кучу файлов SQL, и мне нужно удалить ссылки на даты в запросах.Однако способ записи файлов заключается в том, что логические операторы, такие как, OR и AND, находятся в строках сами по себе, а остальные связанные аргументы - в другой строке.Вот так:
OR
field.lastupdate > DATE_SUB(CURDATE(), INTERVAL 31 DAY))
AND
*some more code*
Я хочу удалить ИЛИ (и это тоже может быть И) до символа новой строки, в этом примере, после второй круглой скобки.Однако я хочу оставить оставшуюся часть кода без изменений.
Я думаю, что регулярное выражение должно быть простым, за исключением того, как игнорировать символ новой строки после ИЛИ, но останавливаться на следующем символе новой строки?
Я должен отметить, что некоторые строки даты, которые я хочу удалить, заканчиваются ";"
, который я не хочу удалять.
Вот более полный пример, который, я надеюсь, прояснит ситуацию:
OR
x.is_deleted = 0
OR
x.lastupd > DATE_SUB(CURDATE(), INTERVAL 31 DAY))
AND
(j.active = 1
OR
j.is_deleted = 0
OR
j.lastupd > DATE_SUB(CURDATE(), INTERVAL 31 DAY));
Итак, вы видите, что я хочу оставить первое «ИЛИ» и следующую за ним строку,
удалить второе «ИЛИ» и строку, следующую за ним.
Сохраните «И» и следующую за ней строку, а также следующее «ИЛИ» и соответствующую ему строку.
А затем удалите последнее «ИЛИ» и его строку, оставляя последний «;».