Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
151 / 15 / 4
Регистрация: 21.02.2009
Сообщений: 2,211
1

Регулярное выражение для пропуска пробелов

28.05.2013, 17:42. Показов 2632. Ответов 5
Метки нет (Все метки)

Для поиска по базе используется выражение:
PHP
1
$query = "SELECT * FROM kattov WHERE artikul = '$NUMBER' ";
На практике содержимое ячейки artikul может отличаться от образца наличием произвольно расположенных пробелов.
Например,
24024 170s
24 02 4 170 s
2402 4170 s
Как средствами REGEXP составить запрос таким образом, чтбы при $NUMBER = 24024170s были найдены все три перечисленные записи?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2013, 17:42
Ответы с готовыми решениями:

Регулярное выражение для пропуска email-адресов только указанных доменов
Привет всем, помогите пожалуйста: нужно регулярное выражение, а именно чтоб пропускало e-mail...

Регулярное выражение для проверки наличия только цифр и пробелов в строке
Добрый день. Подскажите, пожалуйста, как правильно записать регулярное выражение для проверки...

Регулярное выражение: проверить состоит ли строка из всех пробелов
Здравствуйте, как регэкспами проверить состоит ли строка из всех пробелов? Делал так:...

Регулярное выражение, которое пропускает все символы, кроме пробелов
Я состряпал такое вот выражение preg_match("#^+$#",$password) но оно по какой-то причине не...

5
13194 / 6581 / 1040
Регистрация: 10.01.2008
Сообщений: 15,069
28.05.2013, 18:01 2
MySQL
1
`artikul` REGEXP '^[[:space:]]*2[[:space:]]*4[[:space:]]*0[[:space:]]*2...ну и т.д.'
Добавлено через 3 минуты
В класс [[:space:]] попадает не только обычный пробел, но и, например, табуляция. Если достаточно пробела, то проще его прямо так и писать:
MySQL
1
`artikul` REGEXP '^ *2 *4 *0 *2 *4 *1 *7 *0 *s *$'
1
151 / 15 / 4
Регистрация: 21.02.2009
Сообщений: 2,211
28.05.2013, 18:30  [ТС] 3
Здесь регистр букв учитвается?

Как полагаете, такая обработка будет сильно замедлять поиск?
0
13194 / 6581 / 1040
Регистрация: 10.01.2008
Сообщений: 15,069
28.05.2013, 18:40 4
Цитата Сообщение от vlad-55 Посмотреть сообщение
Здесь регистр букв учитвается?
Вроде, зависит от кодировки проверяемой строки. Только в документации сказано, что с многобайтными символами оно плохо работает, ибо изначально рассчитано только на ASCII.
Цитата Сообщение от vlad-55 Посмотреть сообщение
Как полагаете, такая обработка будет сильно замедлять поиск?
REGEXP не может использовать индексы, поэтому ему придется делать полное сканирование. Так что, да, сильно. Пропорционально объемам данных.
1
631 / 440 / 67
Регистрация: 19.09.2012
Сообщений: 1,633
29.05.2013, 15:09 5
Вариант еще такой
SQL
1
$sql1="SELECT * FROM `имя таблици` WHERE REPLACE(`колонка`,'пробел','')='24024170s'";
У меня получилось
1
151 / 15 / 4
Регистрация: 21.02.2009
Сообщений: 2,211
29.05.2013, 15:33  [ТС] 6
У меня тоже получилось. И работает заметно быстрее.

Спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.05.2013, 15:33

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Регулярное выражение для пароля
Нужно регулярное выражение для пароля. В пароле должна быть минимум одна цифра, одна...

Регулярное выражение для xml
Регулятор выражение xml Тема пойдет о регуляторе выражения без парсинга, причина почему парсинг...

Регулярное выражение для preg_split
Надо регулярка для preg_split которая разрезается строку "консольного-кода" через ( ; ). ...

Регулярное выражение для схемы
Есть такая задача: Существует набор символов, допустимых в строке: , а также пробел и CRLF (именно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.