| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > регулярные выражения, получить позицию |
| Автор: kosyakLA 17.7.2011, 11:57 |
| есть задача: строка входная, например select * from mod where not exists(select * from mod2) and not exists (select * from mod3) нужно получить начало позиции для select я только смог пока сделать вытягивание mod,mod2,mo3, таким образом: while($in=~/SELECT(.+?)FROM\s+(.+?)\s+/i) { print "$1 : $2<br>"; $params=~s/SELECT(.+?)FROM\s+(.+?)/123/i; } |
| Автор: korob2001 18.7.2011, 14:08 | ||
| Добрый день! Если честно, не совсем понял вопрос, точнее не совсем понял зачем нужно искать позицию через регулярное выражение? Может стоит подумать об использовании index? На всякий случай написал короткий код, с поиском подстроки по шаблону и дальнейшим её выводом с помощью функции substr(). Пример немного надуман, но зато он наглядно демонстрирует вывод найденной подстроки через позиции. Шаблон можно поменять.
PS: Если я что-то не верное понял, уточните вопрос. |