MySQL Регулярные выражения - Часть 3Introduction Это часть 3 из моей серии, MySQL регулярные выражения. Я предполагаю, что вы читали предыдущую часть серии. Это продолжение. В этой части серии мы рассмотрим MySQL регулярных выражений мотоцикла конструкций. В предыдущей части серии, мы видели несколько простой шаблон строит. Здесь мы будем смотреть на более обстоятельные таблице шаблон constructs.
Database для иллюстрации мы будем использовать следующую таблицу базы данных под названием Домашние животные, для иллюстрации: | назвать | Владелец | виды | секс | Рождение | смерть | + -------- + -------- + --------- + ------ + ------------ + - ----------- + | Баффи | Гарольд | собака | е | 1999-05-13 | NULL | | Боузер | Диана | собака | м | 1999-08-31 | 2005-07-29 | | Пушистый | Гарольд Тейлор | кот | е | 2003-02-04 | NULL | | TimTim | Гвен Джонс | кот | м | 2004-03-17 | NULL | | Уистлер | Гвин | bir5d | NULL | 2007-12-09 | NULL | Данные в этой таблице немного отличается от той, в таблице предыдущей части серии.
Вы должны быть тестирования ЗЕЬЕСТ, приведенные ниже этой table.The (ABC) Построить Здесь (ABC) просто означает, один, два, три, четыре, пять, и т.д. символов в скобках. В шаблоне, скобки группы символов в наборе. Набор символов в шаблоне ведет себя как один символ и специальных символов, которые мы видели в предыдущей части серии, могут быть применены на них, как будто они носили единичный характер. Например, вы можете иметь что-то вроде, (AB) + (ABC) *, (ABCD) ?, и т.д.
В следующем ВЫБОР оператор возвращает четвертый ряд в таблице выше, соответствие четвертое значение ячейки, "TimTim" из Первый столбец: SELECT * FROM Животные где имя RLIKE "(Тим) +"; Узор "(TIM) +". Шаблон совпадает с одним или более (TIM) в одной теме. Тема соответствует есть "TimTim"; Есть два (TIM) в теме. Если шаблон был, "(TIM) *", все клеточные значения первого столбца бы соответствовать, потому что, * означает ноль или более (при + означает один или более) .
Отель [[::]] Создает слово представляет собой последовательность символов слова, которые не предшествовали или следовали персонажами слов. Слово символ является алфавитно-цифровой символ или подчеркивание _. Примеры символов слова являются: «а», «б», «С», «1», «2», «3» и т.д. маркер, [[::]] в шаблоне соответствует конец слова , Эти конструкции слово-граница маркеры. Они не являются символами; они являются граничными идентификаторы.
В следующем ВЫБОР оператор возвращает четвертую строку в таблице выше, соответствие "Гвен" в теме ", Гвен Джонс" в четвертой ячейке во второй колонке: SELECT * FROM Животные где владелец RLIKE "Гвен [[:>:]] "; Узор ", Гвен [[:>:]]". Она начинается со слова ", Гвен" с последующим конце слова маркера, [[:>:]]. Таким образом, это соответствует "Гвен" и свой конец в теме "Гвен Джонс". В теме, после слова "Гвен", у вас есть слово-границу перед пробелом. Свойство [[: Обратите внимание, что каждое слово-маркер граница имеет две пары противоположных квадратных скобках, два двоеточия и character.
The [а-DX] и [^ а-DX] Создает Точка специальный символ соответствует любому одному символу. Что можно сказать о случае, когда вы хотите, чтобы соответствовать один символ из набора символов? Рассмотрим слова, "Гвен", "Гвин", "Гван" и "Gw4n". Слова отличаются по характеру в третьей позиции. Первое слово имеет «е» в третьем положении; второе слово имеет "я" в третьем положении; третье слово имеет «а» в третьем положении; и четвертое слово имеет "4" в третьей позиции. Таким образом, вы можете быть заинтересованы, чтобы соответствовать символы, 'E', 'я', 'A' и '4'.
Это означает, что вы хотите, чтобы соответствовать один символ из набора [eia4]. Шаблон для этого случая, "[eia4]", который будет соответствовать один символ в позиции в теме, которая, «е» или «я 'или' а 'или' 4 '. Следующую инструкцию выборки вернется четвертый и пятый ряды таблице выше, соответствие "Гвен Джонс" в четвертой ячейке и "Gwin" в пятом клетки, все во втором столбце. SELECT * FROM Животные где владелец RLIKE "ГВт [eia4] п"; Шаблон в заявлении есть "ГВт [eia4] н". Субъекты являются "Гвен Джонс" и "Гвин".
Слово участие в субъектах, является "Гвен" за "Гвен Джонс" и "Гвин" для "Гвин". "Гвен" и "Гвин" отличаются в третьем положении героев. Так, в теме ", Гвен Джонс", "е" в "Гвен" сочетается и в теме, "Гвин", "Я" совпадают. «е» и «я» являются в третьем положении словами, "Гвен" и "Гвин" соответственно. В структуре ", ГВт [eia4] п", [eia4] находится в третьей позиции. Примечание: [eia4] и (eia4) означают разные вещи. [eia4] 'E' означает или "я" или "а" или "4"; в то время как (eia4) означает относиться набор символов, "eia4", в качестве одной character.Ranges [eia4] сверху является примером класса.
Что можно сказать о случае, когда вы хотите матч из класса, [ABCDE]? Обратите внимание, что это диапазон символов алфавита от «А» до «Е». [ABCDE] лучше записать в виде [а-е]. Обратите внимание на использование дефиса. Вы можете комбинировать различные одиночными символами. Например, [а-DX] означает 'A' или 'B' или 'C' или 'D' или 'X', то есть, диапазон объявления и X. Вы также можете иметь диапазон с цифрами, например, [0-5], [3-9], [0-9] Отрицание класса Если вы хотите, чтобы соответствовать символ в позиции в теме, кроме тех, в классе, то вы должны использовать символ ^.
Так что, если вы хотите, чтобы соответствовать любой символ, кроме тех, в [а-DX], вы должны ввести [^ а-DX] в шаблоне. Обратите внимание на использование и положение ^ в классе конструкции. В следующем ВЫБОР заявление будет вернуть первую и вторую строки, согласование, "собака" в первой и второй клеток третьего толстой кишки: SELECT * FROM Животные, когда виды RLIKE "D [^] г в"; Шаблон в заявлении является "d [^ ап] г" означает, что ни один символ в диапазоне, ап, не должны быть согласованы в должности.
Шаблон совпадают, начинается с "D", за которым следует символ, который не находится в диапазоне, ап, а затем следуют «г». 'O' не в диапазоне, так что "собака" является matched.Formal Классы символов Некоторые классы настолько важны, что они имеют имена. В следующем списке приведены имена этих классов и их описания: Название: Описание цифрой, буквой буквенно-цифровых символов альфа: буквенные символы пустым: Пустые символы CNTRL: управляющие символы цифра: цифровых символов графике: Графические символы нижнего: Строчные буквы алфавита печати: Графический или пространство символы Punct: знаки препинания пространство, пространство, табуляции, новой строки и возврата каретки верхний: Прописные буквы алфавита xdigit: Hex цифровых символов Чтобы использовать любой из этих классов, вы используете маркер конструкцию, [[: имя:]].
В следующем ВЫБОР заявление будет вернуть последнюю строку в соответствующей таблицы "bir5d" для цифры 5, в пятой ячейке третьей колонки: SELECT * FROM Животные, когда виды RLIKE "бир [[: цифра:]] d"; Узор ", бир [[: цифра:]] d". Таким образом, тема "bir5d", имея цифру, 5, на четвертой позиции совпадения. [[: цифра:]] находится в четвертой позиции шаблона ", бир [[: цифра:]] d" .The х {M}, {х м,} и {х т, п} Создает Пусть M и п целых чисел (целые числа). х {т} в шаблоне соответствует ровно т последовательных экземпляров х. х {м,} соответствует по крайней мере м подряд экземпляры х.
х {т, п} матчи между м и н подряд случаях х. Теперь мы рассмотрим несколько примеров. Узор ", Fe {1} д", соответствует предмет "ФЭД", где "е" сопоставляется ровно один раз. Узор ", Fe {1} д", соответствует предмет, "кормили" и при условии, "корма", где "е" сопоставляется по крайней мере, один раз. Узор ", Fe {1,2} d", соответствует предмет, "кормили" и при условии, "подачи", где "е" сопоставляется по крайней мере, один раз и не более 2 раз. Конструкции могут использоваться не только для персонажа; Они также могут быть использованы для атома (деталь рисунка).
Так, картина ", а [BCD] {3} е" соответствует предмет, "ABCDE". Узор ", а [BCD] {3} е" совпадает тему "ABCDE". Узор ", а [BCD] {1,10} е" соответствует предмет, "ABCDE". Атом [BCD]. Теперь [BCD] означает 'B' или 'C' или 'D'. Таким образом, к югу картины, "[BCD] {3)", означает "BBB" или "CCC" или "DDD" или "ВСВ" или "CBC" или "DCD" или "BDB" или "CDC" или "DBD" , Суб шаблон [BCD] {3} означает комбинацию, по меньшей мере любой из трех символов. К югу узор, [BCD] {1,10}, значит, по крайней мере, один символ из трех персонажей, вплоть до комбинации 10 символов из 3 characters.
White Космические Персонажи Белые литералов пространство символов являются: 'B', 'т ',' п ',' V ',' F ', и' г '. Имена этих литералов соответственно, возврат, табуляции, новой строки, вертикальной табуляции, форма подачи и возврата каретки. Вы можете использовать пробелы литералы символов, непосредственно в шаблоне. Предположим, что вы следующий ряд добавляется в таблицу: | Лев | Питер | finsh | е | 2008-12-09 | NULL | Клетка для видов имеет значение "finsh", с символом новой строки, 'п'. В следующем ВЫБОР заявление будет вернуть строку, соответствие теме, "finsh".
SELECT * FROM Животные, когда виды RLIKE "finsh"; Узор "finsh". Вы также можете использовать имя пробелу, но в этом случае, вы должны будете поместить его в маркер, [[.name.]]. В следующем ВЫБОР оператор возвращает добавленную строку, соответствие предмета "finsh". SELECT * FROM Животные, когда виды RLIKE "фантастические ш [[строку].]."; Узор ", фантастические [[. Перевод строки.]] Ш". Вы можете использовать литерал маркера. В следующем ВЫБОР оператор возвращает добавленную строку, соответствие предмета "finsh". SELECT * FROM Животные, когда виды RLIKE "фантастические ш [[п].].
"; Узор ", фантастические [[. П.]] Ш" Маркер имеет две пары противоположных квадратных скобках и двух dots.The MySQL Регулярные выражения метасимволы Метасимволы является символ, используемый для управления или определить другие символы. В случае моделей, в MySQL Регулярные выражения метасимволы: ^ $. +? | * {} []: =>
доступа