Regex Поиск в phpMyAdmin - PullRequest
       2

Regex Поиск в phpMyAdmin

2 голосов
/ 01 апреля 2012

Попытка изменить расположение папки «files» на сайте Drupal с / files на /sites/default/files.

Во избежание изменения чего-либо еще, например

  http://www.google.com/profiles/

Я пытаюсь использовать базовое регулярное выражение с границей слова.

  \bfiles/

Быстрая проверка в regexpal работает как положено, но когда я ввожу вышеупомянутое в поиске phpMyAdmin, отметив флажок "как регулярное выражение", я не получаю ожидаемый результат. *

Два вопроса:

  • Как написать выражение с границей слова, чтобы оно работало в phpMyAdmin?

  • Я новичок в выражениях SQL! Можно ли написать SQL-запрос, который бы просто просматривал каждое вхождение «files /» и заменял его на «sites / default / files /»?

1 Ответ

4 голосов
/ 01 апреля 2012

Согласно документации MySql , используется регулярное выражение POSIX 1003.2.Для этого вида регулярных выражений границы слов следующие:

[[:<:]] (начало) [[:>:]] (конец)

, поэтому ваше регулярное выражение будет:

[[:<:]]files/

Если вы хотите использовать sql для поиска и замены всех экземпляров [[:<:]]files/ из определенного поля в таблице, вы можете использовать UDF, такой как найденный здесь

Также,при использовании regex с MySql вы должны знать следующее:

Поскольку MySQL использует синтаксис C в строках (например, \ n для представления символа новой строки), необходимо удвоить любой«\», Который вы используете в строках REGEXP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...