Regex в поиске MySQL внутри тегов - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть этот код:

<h4><img class="arrow" src="/Images/page-elements/arrow-light-blue.png" 
alt="" />Day 1: Halifax</h4>
<h4><img class="arrow" src="/Images/page-elements/arrow-light-blue.png" 
alt="" />Day 2: Halifax – Pictou (2 hours)</h4>
<h4><img class="arrow" src="/Images/page-elements/arrow-light-blue.png" 
alt="" />Day 1: London</h4>
<h4><img class="arrow" src="/Images/page-elements/arrow-light-blue.png" 
alt="" />Day 2: Halifax – Victoria (2 hours)</h4>

Я использую:

SELECT * FROM abc WHERE `meta_value` RLIKE  'Day[^>]+</h4>' 

в MySQL, который выбирает все от 'Day' до конечного тега </h4>.

Я хочу, чтобы он выбирал только те вещи, в которых есть "Виктория". Поэтому я хочу выбрать только «День 2: Галифакс - Виктория (2 часа) »

Как я могу это сделать? Я пытался %Victoria%, но это не работает.

Ответы [ 2 ]

0 голосов
/ 28 апреля 2019
RLIKE  'Victoria[^<]*/h4>' 

Подробности

Victoria  -- look for this
[^<]*     -- match everything through the start of next tag
/h4>      -- make sure that tag is "end h4" (and include it in the match)

Пока что эти вопросы и ответы игнорируют то, что, вероятно, хочет ОП, а именно извлечение подстроки из текста.Это непрактично в MySQL;используйте MySQL, чтобы найти строку, затем используйте код приложения, чтобы выполнить извлечение.

0 голосов
/ 17 апреля 2019

Используйте выражение вроде:

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