Проверить формат varchar. my SQL
эти ^ и $
Я смотрела что ^ и $ делают. Но я не нашла применения. Ок '^ [a-zA-Z0-9]' можно еще проверять.
Но мой стринг если он трехзначный и заканчивается на '[a-zA-Z]%' то надо 0 -->xx(a), а если 8-значный или 7-6-5-4, то надо 1-->xx(a)n(n)(n)(n)(a). Я думаю надо все таки все варианты с if else????
Можно проверить первые две позиции, что на этой субстроке длины два - два метчес для х,
потом третью позицию - если там (а) - отрезать субстроку начиная с 4й позиции до конца, если н - с третьей.
Потом проверить конец (полученной субстроки), и если там (а) - из остатка взять субстроку без последнего элемента, а если н - то оставить как есть.
И в оставшейся в итоге субстроке проверить, что все н, и что длина лежит в [1;4].
Спасибо. Это по крайней мере для трехзначного номера работает:
IF char_length(fln) = 3
and SUBSTRING(fln, 1, 2) regexp '[a-zA-Z0-9]{2}' and SUBSTRING(fln, 3, 1) regexp '[0-9]' then set result_c = 1;
Можно проверить первые две позиции, что на этой субстроке длины два - два метчес для х,
потом третью позицию - если там (а) - отрезать субстроку начиная с 4й позиции до конца, если н - с третьей.
Потом проверить конец, и если там (а) - из остатка взять субстроку без последнего элемента, а если н - то оставить как есть.
И в оставшейся субстроке проверить, что все н, и что длина лежит в [1;4].
Спасибо. Я думаю мне понятно и код тоже будет в Вашем варианте покороче, но я уже допишу что начато, то есть: Если стринг длинна 3, то проверь это...Если стринг длинна 4, то проверь то ..и т.д. Мне надо побыстрей и дальше, а Ваш вариант я попробую обязательно, когда время будет.
Еще последняй знак в например в 4х значном стринге SUBSTRING('abcd', -1, 1) или SUBSTRING('abcd', 4, 1) или без разницы?
Я смотрела что ^ и $ делают. Но я не нашла применения.
Плохо. Давайте попробуем собрать мысли в кучу, и может всё-таки показать нам пример с которым "всё не работает"?
в Вашем варианте покороче, но я уже допишу что начато, то есть: Если стринг длинна 3, то проверь это...Если стринг длинна 4, то проверь то ..и т.д. Мне надо побыстрей и дальше
А вам не кажется что с regexp решение всё-таки покороче, и пишется быстрее чем несколько if-esle?
I would use the variant with -1, as it doesn't depend on the string length.
Плохо. Давайте попробуем собрать мысли в кучу, и может всё-таки показать нам пример с которым "всё не работает"?
Проблема в том, что у меня нет определенной концовки номера (если номер больше 3 знаков), чтоб с этим ее тестировать. Плюс ко всему regexp видит мой номер как салат. Только substring + regexp.
select '55?8777K' regexp '[a-zA-Z0-9]{1}[a-zA-Z0-9]{1}[a-zA-Z]{0,1}[0-9]{1}[0-9]{0,1}[0-9]{0,1}[0-9]{0,1}[a-zA-Z]{0,1}';
-->1((((((((((
Попытка номер три: в твоем же варианте тебе нужно подставить ^ и $ в нужные места, и оно заработает как надо.
у меня нет определенной концовки номера (если номер больше 3 знаков), чтоб с этим ее тестировать
------
Тады - оййй,,, Тады проблем не разрешим от слова вааапще... да-да - даже человекоподобным...
Так что вариант - один - изучить необходимое... ну или выбрать другую специальность...
Проблема в том, что у меня нет определенной концовки номера (если номер больше 3 знаков), чтоб с этим ее тестировать.
Но как-то же вы догадались что "не работает". Как?
Попытка номер три: в твоем же варианте тебе нужно подставить ^ и $ в нужные места, и оно заработает как надо.
Бля...ну в этом заработает, а в другом нет. хх(а)н(н)(н)(н)(а)(((((
Сорри... до меня дошло. Ты предлагешь варианты концовок перебрать. Я думала об этом, но там тоже нужен субстринг. Но я в приципе так и делаю, только без ^ и $
Почему вы так думаете? Революционное сознание подсказывает? Приведите пример, с которым оно "не заработает".
Да, кстати, а вы вообще понимаете как работает регулярное выражение?
Да, кстати, а вы вообще понимаете как работает регулярное выражение?
По идее, да. Задание дано явно на знание регулярных выражений. Значит, тема была. Сомневаюсь, что преподаватель на данном этапе хочет выявить студентов, способных хоть частично, рудиментарно реализовать алгоритм для регулярных варажений.
Да, кстати, а вы вообще понимаете как работает регулярное выражение?
Если сможете объяснить буду очень благодарна, а то тот кто мог(и должен) бы объяснить, сказал у Гугла спрашивать.
А, ты же в уни учишься. Там это в порядке вещей.
Поверь ничего нет. Вот обзор актуальных тем (красным). Синтакс функций да показал, недостатки сказал гуглить. Я так и делаю. Функции с его Лекций пишу, остальное гуглю или сдесь спрашиваю.
Ну, уни же. Профессор задает только направление. Студенты занимаются изучением сами.
Сомневаюсь, что преподаватель на данном этапе хочет выявить студентов, способных хоть частично, рудиментарно реализовать алгоритм для регулярных варажений.
Я подозреваю, более конкретно это буду на модуле "Алгоритмы" проходить, но это только в 2022. Пока я должна ДБ без теории алгоритмов осилить.
Пока я думаю достаточно знать, что стринг это если я не ошибаюсь список, поэтому на нем индексация в функции субстринг работает.