Loading...
f1mp3r avatar f1mp3r 35 Точки

[Technical Issue] MySQL - Regex

Някой може ли да помогне с малко регекси в MySQL :D

Имам следния стринг: '1,2,13,15,12'

И следния експрешън: '(\,*)(2)(\,*)'

Искам да ми мачва само 2, а то мачва и 12, въпреки, че този туул показва, че мачва само 2 :?

0
Databases Basics 08/03/2015 13:15:18
crazy7 avatar crazy7 177 Точки

Може да пробраш този туул: http://www.regexr.com/

Когато имаш * при запетайките показва че може да ги няма и затова ти хваща 2-ката от 12.

Може да замениш * с + така си гарантираш че и отпред и отзад има поне една запетайка, а ако искаш да е точно 1 може да направиш така  '(\,{1})(2)(\,{1})'

1
07/03/2015 20:31:32
f1mp3r avatar f1mp3r 35 Точки

Но аз не знам дали има запетайка. Това е просто един кейс. Възможно е стринга да е '2,3,8,12,25' или пък само '2' или само '25'

0
crazy7 avatar crazy7 177 Точки

Набързо успях да измисля това - ([\W]+)([2])([\W]+)|^2[\W]+|[\W]+2$|^2$

Сигурно има и по-красив начин.

0
07/03/2015 23:39:51
f1mp3r avatar f1mp3r 35 Точки

Хм. Това работи в сайта който си пратил, но сега изкарва само '2', а имам:

2

2,4

1,2

Странно.

Update: както и да е, промених си заявката, така че да не трябва да използвам тази глупост :D. Мерси за помощта.

0
07/03/2015 23:28:46
crazy7 avatar crazy7 177 Точки

Таман мисля че измислих решение все пак ако искаш може да пробваш с

 ([^0-9]+)([2])([^0-9]+)|^2[^0-9]+|[^0-9]+2$|^2$

0
07/03/2015 23:37:00
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.