ginesufa
@ginesufa

Как произвести замену SQL при помощи регулярных выражений?

Помогите пожалуйста!

Есть у меня таблица SQL posts и есть колонка contant,

нужно найти в этой колонке все ссылки вида http://sitename.ru/files/2019/05/examplename.pdf
и заменить их на
[chortcode url="http://sitename.ru/files/2019/05/examplename.pdf"]


То есть все что находиться между http://sitename.ru/files/ и .pdf должно остаться как есть.

Сразу оговорюсь, что создать два запроса вида

UPDATE posts SET contant= REPLACE(contant, 'http://sitename.ru/files/', '[chortcode url="http://sitename.ru/files/');
UPDATE posts SET contant= REPLACE(contant, '.pdf', '.pdf"]');


не вариант, так как могут быть строки которые тоже содержат http://sitename.ru/files/, но начинаются например с [asdf url="http://sitename.ru/files/ их в общем трогать не нужно,

можно наверное и без регулярных выражений решить, например как нибудь указать, что до http://sitename.ru/files/ не должно ничего быть, но опять таки я не знаю ни как это сделать, и не понял как работать с регулярными выражениями, может по готовому примеру будет проще разобраться.

Заранее прошу пощения за кудрявость вопроса

----------------------------- ДОПОЛНИЛ ----------------------------
Проще говоря есть следующие строки со значением столбцов content:
http://sitename.ru/files/2019/05/examplename.pdf
[drugoyshortcode url="http://sitename.ru/files/2019/05/examplename.docx"] - (его не трогаем потому что до ссылки другой шорткод и не нужное расширение файла)
http://sitename.ru/files/2018/04/myname.pdf
http://sitename.ru/files/2019/05/examplename.xlsx - (его тоже не трогаем, потому что не нужное расширение файла)
http://sitename.ru/files/2019/05/yourname.pdf

должно получиться так
[sortcode url="http://sitename.ru/files/2019/05/examplename.pdf"]
[drugoyshortcode url="http://sitename.ru/files/2019/05/examplename.docx"]
[sortcode url="http://sitename.ru/files/2018/04/myname.pdf"]
http://sitename.ru/files/2019/05/examplename.xlsx
[sortcode url="http://sitename.ru/files/2019/05/yourname.pdf"]
http://sitename.ru/files/2019/05/vashenename.pdf
  • Вопрос задан
  • 581 просмотр
Решения вопроса 1
ginesufa
@ginesufa Автор вопроса
Решение нашел следующее, спасибо zhaar

UPDATE posts
    SET content = REPLACE(content, 'http://sitename.ru/files/', '[chortcode url="http://sitename.ru/files/'),
        content = REPLACE(content, '.pdf', '.pdf"]')
    WHERE content like 'http://sitename.ru/files/%';
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы