Я предполагаю, что вы используете MySQL 8.x, который использует выражения регулярных выражений ICU .
Похоже, что строка, которую вы хотите обработать, - это JSON.Вы можете использовать JSON_EXTRACT
с JSON_UNQUOTE
и '$.city'
в качестве пути JSON, тогда:
JSON_UNQUOTE(JSON_EXTRACT('{"travelzoo_hotel_name":"Graduate Minneapolis","travelzoo_hotel_id":"223","city":"Minneapolis","country":"USA","sales_manager":"Stephen Conti"}', '$.city'))
вернет Minneapolis
.
В вашем регулярном выражении шаблон группы без захвата все еще сопоставляется и добавляется к значению соответствия.«Без захвата» означает только то, что отдельный буфер памяти не выделяется для текста, захваченного с помощью конструкции группировки.Таким образом, вы можете исправить это с помощью шаблона '(?<="city":")[^"]+'
, где (?<="city":")
является положительным взглядом сзади, который соответствует "city":"
, но не помещает его в значение совпадения.Единственный текст, который вы будете иметь в выводе, - это текст, соответствующий [^"]+
, 1+ символов, отличных от "
.