| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Регулярка |
| Автор: SwordOfDeath 2.9.2009, 23:05 | ||||||
| Привет И опять у меня траблы с регуляркой... Правило как-никак придумал... Вобщем задача: есть
Из этого нужно выцепить "1251909939" написал вот такую регулярку:
Ну а код выглядит так...
Но ereg возвращает false на вышеуказанной строчке... |
| Автор: brother79 3.9.2009, 06:27 |
| Я обычно ereg не пользую, а пользую preg_match, но меня настораживают неэкранированные символы '/' и двойные кавычки, т.к. пообще обычно в пхп '/' участвует в выражении, а с двойными кавычками в регулярном - гемор лишний с экранированием, т.е. чтобы '\' проэкранировать - с двойными тебе надо писать "\\\\" вместо '\\', т.к. сначала экранируется для кавычек, а потом для рег. выражения. if (preg_match('/RewriteRule \^\\Qfiles\/([0-9]{10})/', $line, $args)) echo "ereg"; Не проверял, будет ли работать - обламывает, но должно работать. |
| Автор: SwordOfDeath 3.9.2009, 10:37 |
| Хм... Тему перенесли в "Администрирование Web серверов и Web служб" хотя вопрос я задавал по регулярным выражениям в PHP... brother79, Спасибо огромное за помощь... Но ситуация прежняя... условие не проходит... |
| Автор: brother79 3.9.2009, 10:50 |
| Попробуй по частям отлаживать, т.е. напиши простое выражение типа: if (preg_match('/RewriteRule/', $line, $args)) echo "ereg"; без всяких проблемных уч-ов, потом если проходит, добавляй понемногу символы, т.о. выяснишь на чём валится, какой символ не проходит. Т.о. можно отлаживать регулярные выражения, как и другие программные части. |
| Автор: SwordOfDeath 3.9.2009, 11:09 |
| Вот это проходит: '/RewriteRule \^\\Q/' А вот это уже нет: '/RewriteRule \^\\Qf/' Но у меня нет никаких мыслей по этому поводу =\ |
| Автор: SwordOfDeath 3.9.2009, 11:46 | ||
Получилось! Но немного не так как я думал...
|