Обратите внимание, что REGEXP
может совпадать в любом месте строки, не обязательно в начале (в отличие от LIKE
), поэтому вам не нужно .*
в начале.
версии MySQL до 8.xне поддерживает Perl-подобные сокращенные классы, и \s
там недопустим.В MySQL 8.x библиотека регулярных выражений ICU поддерживает \s
.
. Вы можете использовать в любом MySQL:
where col REGEXP '<definitions>[[:space:]]+<definition id="1"'
Или, если между элементами может отсутствовать пробел:
where col REGEXP '<definitions>[[:space:]]*<definition id="1"'
Выражение в скобках [[:space:]]
, содержащее [:space:]
класс символов POSIX, соответствует любым пробельным символам, и +
используется для 1 или более повторений символов, в то время как *
для 0 или более из них.