| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Опять регулярки |
| Автор: TwiSteR 14.2.2006, 10:39 | ||
| Приветствую вновь уважаемые ! Задача такая, сделать подобие пхп функции addslashes() Вот её описалово ========================================================= string addslashes ( string str) Возвращает сроку str, в которой перед каждым спецсимволом добавлен обратный слэш (\), например для последующего использования этой строки в запросе к базе данных. Экранируются одиночная кавычка ('), дойная кавычка ("), обратный слэш (\) и NUL (байт NULL). Функция addslashes() часто применяется при записи в базу данных. Предположим, если нужно внести в базу данных имя O'reilly, то символ ' должен быть экранирован. В большинстве баз данных для этого используется \, строка будет выглядеть как O\'reilly. Заметьте, что сам символ \ в базу данных записан не будет. Если директива конфигурации magic_quotes_sybase имеет значение on, то символ ' будет экранироваться добавлением еще одного ' вместо \. ========================================================= Пробую так
Но это не совсем правильно до конца ибо если есть " должно заменяться на \" а заменяется на \' Подскажите плиз... |
| Автор: nitr 14.2.2006, 10:53 | ||
| А для чего тебе? Если что смотри ман "\Q", пример, $str =~ /\Q$переменная\E/; "\Q" сама добавляет "\" перед спец. символами, дабы не было ошибки. Или для тебя самое простое:
А у тебя, думаю, ошибка: замени [\'\"] на ['"], это даж в твоём коде не могло работать. |
| Автор: TwiSteR 14.2.2006, 11:19 | ||||
| nitr, Сенкс сделал так
но вот так не пашет
|
| Автор: sharq 14.2.2006, 11:21 | ||
TwiSteR,
Добавлено @ 11:23 Можешь для экранирования запроса к БД использовать метод DBI quote. |
| Автор: BlackLFL 14.2.2006, 12:04 | ||
|
| Автор: nitr 14.2.2006, 12:42 | ||
| sharq, прикольный код TwiSteR, используй его код, он практичен. Вот модификация.. если не понятны "расширенные" регулярки:
Да и \Q здесь не причём... Добавлено @ 12:43 Кстати, форум использует регулярки... =)) Лучше б как в xml SAX использовалось, но конечно проще как щас Я просто к слову ;) |
| Автор: sharq 14.2.2006, 14:31 |
| nitr, ключ i - здесь нен нужен. а m - лучше оставить. |
| Автор: nitr 14.2.2006, 17:04 |
| =) канечна не нужен... применение m лучше расскажи в этом примере. |
| Автор: TwiSteR 14.2.2006, 23:32 |
| Всём огромное спасибо ! |
| Автор: sharq 16.2.2006, 17:50 |
| nitr, этот ключик сочитается вместе с ключиком s. смотри документацию по re. |