| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MS Access > Помгите составить регулярное выражение |
| Автор: TheAviator 20.11.2004, 23:57 |
| Собсно сабж. Какой SQL - запрос позволяет отобразить записи с РОВНО пятью заданными символами в определенном поле? Т.е., например, найти те поля, где есть РОВНО пять букв 'A' . Не больше. |
| Автор: Vit 21.11.2004, 17:12 | ||
Не уверен про MS Access, но попробуй что-нибудь типа:
|
| Автор: TheAviator 21.11.2004, 22:48 | ||||
Да. тип запроса такой в Акцессе катит, но я спрашивал о конкреном запросе для конкретного случая, т.е. конкретно шаблон для поиска РОВНО пяти цифр в поле. Например, найти пять и более цифр будет в акцессе выглядеть так: Select * From books Where Name Like "*#*#*#*#*#*"; А вот РОВНО пять цифр??? |
| Автор: Vit 22.11.2004, 01:28 | ||||
Если пять любых букв то
|
| Автор: TheAviator 22.11.2004, 11:22 |
| ВИТ, ты опять не понял что я имею ввиду. К примеру, запрос должен выбрать такую строку: e1e2e3e4e5e (содержится ровно пять цифр) но не должен выбрать такую e1e2e3e4e5e6e (шесть цифр) как сам понимаешь, запрос типа Select * from books where name like "*#*#*#*#*#*"; выберет обе такие записи, а мне нужен такой запрос, который выберет только первую. |
| Автор: Vit 22.11.2004, 16:50 |
| Такой запрос ИМХО невозможен даже на гораздо более развитых диалектах SQL, только вручную проходом по записям, а вообще надо при занесении данных озаботится о внесении их таким образом чтобы были поля поиска... Впрочем одна мысль есть, толкьо не уверен что в MS Access есть соответтсвующие функции: в поле сначала заменить все буквы на пусто, потом получившееся число в строке конвертнуть в число и поставить условие чтоб было больше 9999 и меньше 100000 |
| Автор: DENNN 22.11.2004, 17:14 | ||||
Насчет аксесса не знаю ( а читать документацию в лом То есть, если я хочу на MySQL использовать при выборке регулярное выражение для того, чтоб найти поля, в которых есть РОВНО ПЯТЬ ЦИФРр, то я пишу что-то примерно следующее.
Возможно регулярное выражение и далеко от совершенства, но как только речь заходит о рег.выражениях, то необъодимо читать документацию на используемый софт. Так, я сомневаюсь, что в приведенном примере MySQL поймет последовательность (?:, хотя без нее можно обойтись, но в продвинутых реализациях она может сильно ускорить обработку регулярного выражения. P.S. навсякий случай: \d - означает любой символ, обозначающий цифру. |