Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> регулярные выражения, получить позицию 
:(
    Опции темы
kosyakLA
Дата 17.7.2011, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 16.2.2007

Репутация: нет
Всего: нет



есть задача: строка входная, например 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;
}


PM MAIL   Вверх
korob2001
Дата 18.7.2011, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Добрый день!
Если честно, не совсем понял вопрос, точнее не совсем понял зачем нужно искать позицию через регулярное выражение? Может стоит подумать об использовании index? На всякий случай написал короткий код, с поиском подстроки по шаблону и дальнейшим её выводом с помощью функции substr(). Пример немного надуман, но зато он наглядно демонстрирует вывод найденной подстроки через позиции. Шаблон можно поменять.
Код

#!/usr/bin/perl -w
use strict;

my $text = "Hello, this is a test message!";
my $find = qr/this\s+is/;  # Регулярное выражение

if ($text =~ $find) {
    my $testStr = substr($text, length($`), length($&)); # Если я правильно понял, тебе нужен второй параметр функции substr()
    print "Found \"$testStr\"\n";
} else {
    print "Not found.\n";
}

PS: Если я что-то не верное понял, уточните вопрос.

Это сообщение отредактировал(а) korob2001 - 18.7.2011, 14:21


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0381 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.