Автор Тема: регулярка  (Прочитано 3245 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
регулярка
« : 29 Апреля 2007, 05:39:34 »
не могу выцепить текст sql запроса

есть такой sql

-- phpMyAdmin SQL Dump
-- version 2.6.1
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Апр 29 2007 г., 12:15
-- Версия сервера: 4.1.16
-- Версия PHP: 4.4.2
--
-- БД: `yatchenk_db`
--

-- --------------------------------------------------------

--
-- Структура таблицы `settings`
--

CREATE TABLE `settings` (
  `id` int(20) NOT NULL auto_increment,
  `var` text NOT NULL,
  `type` text NOT NULL,
  `def_value` text NOT NULL,
  `values` text NOT NULL,
  `labels` text NOT NULL,
  `section` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=18 ;

--
-- Дамп данных таблицы `settings`
--

INSERT INTO `settings` VALUES (14, \'USE_ONLINE_AUTH\', \'popup_menu\', \'\', \'Y;N\', \'Y;N\', \'main\');
INSERT INTO `settings` VALUES (2, \'SITE_URL\', \'\', \'\', \'\', \'\', \'main\');
INSERT INTO `settings` VALUES (3, \'IMAGE_URL\', \'\', \'\', \'\', \'\', \'main\');
INSERT INTO `settings` VALUES (4, \'ADMIN_EMAIL\', \'\', \'\', \'\', \'\', \'main\');
INSERT INTO `settings` VALUES (5, \'IMAGE_MAX_SIZE\', \'\', \'\', \'\', \'\', \'sizes\');
INSERT INTO `settings` VALUES (6, \'FILE_MAX_SIZE\', \'\', \'\', \'\', \'\', \'sizes\');
INSERT INTO `settings` VALUES (7, \'SESSION_DEL_TIME\', \'\', \'\', \'\', \'\', \'auth\');
INSERT INTO `settings` VALUES (8, \'THUMBIMAGESIZE\', \'\', \'\', \'\', \'\', \'sizes\');
INSERT INTO `settings` VALUES (9, \'THUMBIMAGESIZE_CROP_X\', \'\', \'\', \'\', \'\', \'sizes\');
INSERT INTO `settings` VALUES (10, \'THUMBIMAGESIZE_CROP_Y\', \'\', \'\', \'\', \'\', \'sizes\');
INSERT INTO `settings` VALUES (11, \'COOKIE_NAME\', \'\', \'\', \'\', \'\', \'auth\');
INSERT INTO `settings` VALUES (12, \'LANGUAGE_COOKIE_NAME\', \'\', \'\', \'\', \'\', \'auth\');
INSERT INTO `settings` VALUES (16, \'SITE_IS_CLOSED\', \'popup_menu\', \'\', \'Y;N;\', \'Y;N;\', \'main\');
INSERT INTO `settings` VALUES (17, \'USE_MODULE_FOR_THUMBS\', \'popup_menu\', \'\', \'create_thumb;create_thumb_gd\', \'Image::Magick;GD\', \'sizes\');

пытаюсь выцепить запрос CREATE TABLE - он расположен на нескольких строках...делаю так

$query =~m/CREATE TABLE(.*)\\;/s

выборка производится до конца файла...т.е. где последний ; стоит

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
регулярка
« Ответ #1 : 29 Апреля 2007, 23:41:34 »
жадность квантификаторов.
одно из решений - .*?
перед употреблением читать perldoc perlre, или(лучше) книгу по регуляркам, она есть в pdf.
The documentations is your friend

Оффлайн vladsu

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 271
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vladislavsurguchev.eu/
регулярка
« Ответ #2 : 03 Мая 2007, 17:13:09 »
$query =~ /CREATE TABLE([^;]*)/;

Хотя может лучше парсером?
----------------------------------------------
Мой сайт чёрно-белых фотографий из разных уголков мира тут

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28