URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 53237
[ Назад ]

Исходное сообщение
"регулярные выражения в PERL"

Отправлено matwey , 08-Фев-05 15:37 
Подскажите плиз как в регулярное выражение на PERL подставить переменную

Содержание

Сообщения в этом обсуждении
"регулярные выражения в PERL"
Отправлено Skif , 08-Фев-05 17:15 
>Подскажите плиз как в регулярное выражение на PERL подставить переменную


руками, а что возможно как-то по другому?
Что за выражение, что требуется и т.д.
Ответ кому нужен?
Каков вопрос - таков ответ!


"регулярные выражения в PERL"
Отправлено йцукенг , 08-Фев-05 18:05 
пример
while(<>){
$_=~/(\S*)\s/$1/;
print $1;
}



"регулярные выражения в PERL"
Отправлено Skif , 08-Фев-05 18:28 
>пример
>while(<>){
>$_=~/(\S*)\s/$1/;
>print $1;
>}

Это типа регулярное выражение? ну ладно, и в чем проблема подставить сюда переменную?
например

open (FILE,"//home/USER/file.txt");
my $zamena="bla-bla-bla";
while($line=<FILE>) {
my $oldline=$line
$line=~/(\S*)\s/$zamena/gi;
print "$oldline\n$line\n$zamena"; #последовательно выведет тебе старую строку файла, потом полученную в результате использования s/// и переменную на которую проводилась замена нужных символов.
}
close(FILE);
Так в чем проблема?


"регулярные выражения в PERL"
Отправлено Simps , 08-Фев-05 18:50 
>>пример
>>while(<>){
>>$_=~/(\S*)\s/$1/;
>>print $1;
>>}
>
>Это типа регулярное выражение? ну ладно, и в чем проблема подставить сюда
>переменную?
>например
>
>open (FILE,"//home/USER/file.txt");
>my $zamena="bla-bla-bla";
>while($line=<FILE>) {
>my $oldline=$line
>$line=~/(\S*)\s/$zamena/gi;
>print "$oldline\n$line\n$zamena"; #последовательно выведет тебе старую строку файла, потом полученную в результате
>использования s/// и переменную на которую проводилась замена нужных символов.
>}
>close(FILE);
>Так в чем проблема?


Если мне не изменяет память у меня не работало пока я не добавил модификатор x


"регулярные выражения в PERL"
Отправлено Skif , 08-Фев-05 18:53 
>Если мне не изменяет память у меня не работало пока я не
>добавил модификатор x
Суть не в этом, модификаторы можно подставить по вкусу и взависимости от задачи. Я даже не вчитывался в регулярку. Посто не понимаю сути вопроса, почему нельзя поставить переменную? или человек имеет ввиду, что переменная замены должна меняться в зависимости от времени. тогда весь код в студию, цель, задачу и начнем разбор. А так из разряда сделайте мне чего-нить пожалуйста, а чего я сам не знаю. Но сделайте.



"регулярные выражения в PERL"
Отправлено co6aka , 09-Фев-05 16:57 
Как заменить в текстновом файле все ip (172.16.0.1) на ip (10.10.10.1)?

"регулярные выражения в PERL"
Отправлено ids , 09-Фев-05 19:20 
>Как заменить в текстновом файле все ip (172.16.0.1) на ip (10.10.10.1)?


это, как его, курить в сторону s/// $)


"регулярные выражения в PERL"
Отправлено dawnshade , 09-Фев-05 19:28 
>>Как заменить в текстновом файле все ip (172.16.0.1) на ip (10.10.10.1)?
>
>
>это, как его, курить в сторону s/// $)


проще sed.


"регулярные выражения в PERL"
Отправлено ids , 09-Фев-05 19:37 
>>>Как заменить в текстновом файле все ip (172.16.0.1) на ip (10.10.10.1)?
>>
>>
>>это, как его, курить в сторону s/// $)
>
>
>проще sed.

Вызывать sed скрипт из перлового, который вызывается из cgi, который рожает апач, который запущен initd-ом, который запустило ядро :)

зы. Вроде ничего не напутал :)


"регулярные выражения в PERL"
Отправлено dawnshade , 09-Фев-05 19:58 
>Вызывать sed скрипт из перлового, который вызывается из cgi, который рожает апач,
>который запущен initd-ом, который запустило ядро :)
>
>зы. Вроде ничего не напутал :)


Ээээ.. минуточку. В начальной постановке задачи не было сказано, что это ЦГИ. Как следствие все рассуждения беспочвенны :))


"регулярные выражения в PERL"
Отправлено ids , 10-Фев-05 10:36 
>>Вызывать sed скрипт из перлового, который вызывается из cgi, который рожает апач,
>>который запущен initd-ом, который запустило ядро :)
>>
>>зы. Вроде ничего не напутал :)
>
>
>Ээээ.. минуточку. В начальной постановке задачи не было сказано, что это ЦГИ.
>Как следствие все рассуждения беспочвенны :))

Да, но я предположил как вероятную ветвь развития событий :)


"регулярные выражения в PERL"
Отправлено qwerty , 09-Фев-05 19:46 
>Как заменить в текстновом файле все ip (172.16.0.1) на ip (10.10.10.1)?


открой файл в мс на редактирование и дай ему заменить (F4) :))


"регулярные выражения в PERL"
Отправлено jonatan , 10-Фев-05 08:51 
Создаем файл replace

---
#!/usr/bin/perl -i

while (<>) {
   s/172\.16\.0\.1/10\.10\.10\.1/;
   print $_;
}
---

Запускаем
replace textfile

Или так
perl -p -i -e 's/172\.16\.0\.1/10\.10\.10\.1/' text


"регулярные выражения в PERL"
Отправлено Skif , 10-Фев-05 12:56 
Блин в самом веху точно такой вариант, только другие переменные, разобрали. Я вообще не понимаю, что это за флейм. Человеку лень почитать доку, ему лень конкретно описать задачу. Все лень. Блин, куда админы и программеры катятся...
Скоро так и в еникейщики перейти недолго...
ЗЫ: курить доки по perl-у изучать операторы while,foreach, m//,s/// в первую очередь, за ними модификаторы.

"регулярные выражения в PERL"
Отправлено dawnshade , 10-Фев-05 13:12 
>Блин в самом веху точно такой вариант, только другие переменные, разобрали. Я
>вообще не понимаю, что это за флейм. Человеку лень почитать доку,
>ему лень конкретно описать задачу. Все лень. Блин, куда админы и
>программеры катятся...
>Скоро так и в еникейщики перейти недолго...
>ЗЫ: курить доки по perl-у изучать операторы while,foreach, m//,s/// в первую очередь,
>за ними модификаторы.

Эт точно.


"регулярные выражения в PERL"
Отправлено co6aka , 16-Фев-05 19:13 
пример выше означает что необходима дополнительная обработка переменных для экранирования спецсимволов(две переменные) и это простой примерчик с ip(.) а если посложнее фразочка...  Имхо должен быть подход для точного совпадения после одной инреполяции переменной($ip -> 10.10.10.1) а далее как есть.

PS: Просто по уму(когда не известна сторка поиска(она может быть любой)) надо тогда писать функции обработки значения переменных для экранирования всех модификаторов и их комбинаций...