ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [mdk-re] Обратно perl
@ 2001-07-20 11:35 cornet
  2001-07-20 11:55 ` [mdk-re] " Sergey Degtyaryov
  0 siblings, 1 reply; 9+ messages in thread
From: cornet @ 2001-07-20 11:35 UTC (permalink / raw)
  To: mandrake-russian

Привет всем!

Сорри, но опять вопрос.

Есть строка, полученная программой из вне.
$string
Есть шаблон, полученный программой из вне.
$template

Как проверить наличие шаблона в строке если шаблон хранится в
переменной и на момент написания программы не известен???

То есть вставить его в конструкцию вида:

if($string=~/^.*<как то указать на $template>.*$/)
{
print "Ok\n";
}

Или можно это решить проще и другими средствами?

-- 
******** FIRE & STEEL ********



^ permalink raw reply	[flat|nested] 9+ messages in thread

* [mdk-re] Re: [mdk-re] Обратно perl
  2001-07-20 11:35 [mdk-re] Обратно perl cornet
@ 2001-07-20 11:55 ` Sergey Degtyaryov
  2001-07-20 12:23   ` cornet
  0 siblings, 1 reply; 9+ messages in thread
From: Sergey Degtyaryov @ 2001-07-20 11:55 UTC (permalink / raw)
  To: cornet

Доброго времени суток, cornet,

20.07.2001 в 11:49 Вы сказали буквально следующее:

c> Есть строка, полученная программой из вне.
c> $string
c> Есть шаблон, полученный программой из вне.
c> $template

c> Как проверить наличие шаблона в строке если шаблон хранится в
c> переменной и на момент написания программы не известен???


c> if($string=~/^.*<как то указать на $template>.*$/)
c> {
c> print "Ok\n";
c> }

А Вы пробуете решить задачу, перед тем как спросить? =)
Кажется Вы и так все знаете =)

$_ = 'Here we will find any template';
$tpl = 'template';
print "Looks like we found this f...ing \$tpl\n" if (/$tpl/);

Rgds, maga.





^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [mdk-re] Re: [mdk-re] Обратно perl
  2001-07-20 11:55 ` [mdk-re] " Sergey Degtyaryov
@ 2001-07-20 12:23   ` cornet
  2001-07-20 12:33     ` Sergey Degtyaryov
  0 siblings, 1 reply; 9+ messages in thread
From: cornet @ 2001-07-20 12:23 UTC (permalink / raw)
  To: mandrake-russian

Sergey Degtyaryov wrote:
> 
> Доброго времени суток, cornet,
> 
> 20.07.2001 в 11:49 Вы сказали буквально следующее:
> 
> c> Есть строка, полученная программой из вне.
> c> $string
> c> Есть шаблон, полученный программой из вне.
> c> $template
> 
> c> Как проверить наличие шаблона в строке если шаблон хранится в
> c> переменной и на момент написания программы не известен???
> 
> c> if($string=~/^.*<как то указать на $template>.*$/)
> c> {
> c> print "Ok\n";
> c> }
> 
> А Вы пробуете решить задачу, перед тем как спросить? =)
> Кажется Вы и так все знаете =)

Как выясняется вовсе не все :-))
 
> $_ = 'Here we will find any template';
> $tpl = 'template';
> print "Looks like we found this f...ing \$tpl\n" if (/$tpl/);

Я не знал про это свойство if(/переменная_содержащая_шаблон/)
искать этот шаблон в $_ как подстроку.
Спасибо ОГРОМНОЕ! Все получилось :-))

-- 
******** FIRE & STEEL ********



^ permalink raw reply	[flat|nested] 9+ messages in thread

* [mdk-re] Re: [mdk-re] Обратно perl
  2001-07-20 12:23   ` cornet
@ 2001-07-20 12:33     ` Sergey Degtyaryov
  2001-07-20 12:46       ` cornet
  2001-07-21  0:28       ` [mdk-re] " Mikhail Zabaluev
  0 siblings, 2 replies; 9+ messages in thread
From: Sergey Degtyaryov @ 2001-07-20 12:33 UTC (permalink / raw)
  To: cornet

Доброго времени суток, cornet,

20.07.2001 в 12:38 Вы сказали буквально следующее:

c> Я не знал про это свойство if(/переменная_содержащая_шаблон/)
c> искать этот шаблон в $_ как подстроку.

Дело в том, что

if( $_=~/^.*$tpl.*$/)
{
print "Ok\n";
}

(Ваш код)
работает точно так же.
Просто ^.* и .*$ - лишнее, строка же обязательно начинается и
обязательно заканчивается =)

perldoc perlop на предмет поиска
perldoc perlre на предмет regexp

Rgds, maga





^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [mdk-re] Re: [mdk-re] Обратно perl
  2001-07-20 12:33     ` Sergey Degtyaryov
@ 2001-07-20 12:46       ` cornet
  2001-07-20 12:59         ` Sergey Degtyaryov
  2001-07-20 13:00         ` Artem K. Jouravsky
  2001-07-21  0:28       ` [mdk-re] " Mikhail Zabaluev
  1 sibling, 2 replies; 9+ messages in thread
From: cornet @ 2001-07-20 12:46 UTC (permalink / raw)
  To: mandrake-russian

Sergey Degtyaryov wrote:
> 
> Доброго времени суток, cornet,
> 
> 20.07.2001 в 12:38 Вы сказали буквально следующее:
> 
> c> Я не знал про это свойство if(/переменная_содержащая_шаблон/)
> c> искать этот шаблон в $_ как подстроку.
> 
> Дело в том, что
> 
> if( $_=~/^.*$tpl.*$/)
> {
> print "Ok\n";
> }
> 
> (Ваш код)
> работает точно так же.
> Просто ^.* и .*$ - лишнее, строка же обязательно начинается и
> обязательно заканчивается =)

В том то и дело, что нет! В регулярных выражениях (по крайней
мере в perl) символ $ обозначает конец строки, а не начало имени
переменной. Такой код не работает - уже пробовал - он всегда дает
истину вне зависимости от содержимого $_ лишь бы она была
определена. 
Эффектиивной частью такого кода остается ^.*$ то есть любые
символы любое число раз, а дальше $ уже пофигу, строка то уже
кончилась...

-- 
******** FIRE & STEEL ********



^ permalink raw reply	[flat|nested] 9+ messages in thread

* [mdk-re] Re: [mdk-re] Обратно perl
  2001-07-20 12:46       ` cornet
@ 2001-07-20 12:59         ` Sergey Degtyaryov
  2001-07-20 13:00         ` Artem K. Jouravsky
  1 sibling, 0 replies; 9+ messages in thread
From: Sergey Degtyaryov @ 2001-07-20 12:59 UTC (permalink / raw)
  To: cornet

Доброго времени суток, cornet,

20.07.2001 в 13:00 Вы сказали буквально следующее:

c> В том то и дело, что нет! В регулярных выражениях (по крайней
c> мере в perl) символ $ обозначает конец строки, а не начало имени
c> переменной. Такой код не работает - уже пробовал - он всегда дает
c> истину вне зависимости от содержимого $_ лишь бы она была
c> определена. 

Неправда Ваша все же.
Попробуйте

$string = '00120';
for (1..5)
{
($string =~ /^.*$_.*$/) ? print "Found\n" : print "Not found\n";
}

$ - конец строки, $_ - переменная.

Rgds, maga





^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [mdk-re] Re: [mdk-re] Обратно perl
  2001-07-20 12:46       ` cornet
  2001-07-20 12:59         ` Sergey Degtyaryov
@ 2001-07-20 13:00         ` Artem K. Jouravsky
  2001-07-20 13:11           ` cornet
  1 sibling, 1 reply; 9+ messages in thread
From: Artem K. Jouravsky @ 2001-07-20 13:00 UTC (permalink / raw)
  To: mandrake-russian

Здравствуйте, cornet <cornet@zmail.ru>!
От Fri, 20 Jul 2001 13:00:31 +0400 вы писали на тему Re: [mdk-re] Re: [mdk-re] Обратно perl:

> Sergey Degtyaryov wrote:
> > 
> > Доброго времени суток, cornet,
> > 
> > 20.07.2001 в 12:38 Вы сказали буквально следующее:
> > 
> > c> Я не знал про это свойство
> if(/переменная_содержащая_шаблон/)
> > c> искать этот шаблон в $_ как подстроку.
> > 
> > Дело в том, что
> > 
> > if( $_=~/^.*$tpl.*$/)
> > {
> > print "Ok\n";
> > }
> > 
> > (Ваш код)
> > работает точно так же.
> > Просто ^.* и .*$ - лишнее, строка же обязательно начинается и
> > обязательно заканчивается =)
> 
> В том то и дело, что нет! В регулярных выражениях (по крайней
> мере в perl) символ $ обозначает конец строки, а не начало
> имени
> переменной. Такой код не работает - уже пробовал - он всегда
> дает
> истину вне зависимости от содержимого $_ лишь бы она была
> определена. 
> Эффектиивной частью такого кода остается ^.*$ то есть любые
> символы любое число раз, а дальше $ уже пофигу, строка то уже
> кончилась...

[ujo@ninth ujo]$ perl -e '$tt = "babuby";$_ = "sahfdhsagfbabubydskfdsjkgf";print /$tt/,"\n"'
1
[ujo@ninth ujo]$ perl -e '$tt = "babuby";$_ = "sahfdhsagfbabbydskfdsjkgf";print /$tt/,"\n"'
 
[ujo@ninth ujo]$

А вот это как? ;)

------
Best wishes,
+----------------------+--------------------------+
|  ."-.                |  Work: +7-(095)-229-4278 |
| /X  | _o.----.    _  |  ICQ:  103399444         |
|/\_  \/ /  __  \_// ) |  Artem K. Jouravsky      |
|\__)-/_/\_____)____/  |  http://www.ifirst.ru/   |
+----------------------+--------------------------+		      



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [mdk-re] Re: [mdk-re] Обратно perl
  2001-07-20 13:00         ` Artem K. Jouravsky
@ 2001-07-20 13:11           ` cornet
  0 siblings, 0 replies; 9+ messages in thread
From: cornet @ 2001-07-20 13:11 UTC (permalink / raw)
  To: mandrake-russian

"Artem K. Jouravsky" wrote:
> 
> Здравствуйте, cornet <cornet@zmail.ru>!
> От Fri, 20 Jul 2001 13:00:31 +0400 вы писали на тему Re: [mdk-re] Re: [mdk-re] Обратно perl:
> 
> > Sergey Degtyaryov wrote:
> > >
> > > Доброго времени суток, cornet,
> > >
> > > 20.07.2001 в 12:38 Вы сказали буквально следующее:
> > >
> > > c> Я не знал про это свойство
> > if(/переменная_содержащая_шаблон/)
> > > c> искать этот шаблон в $_ как подстроку.
> > >
> > > Дело в том, что
> > >
> > > if( $_=~/^.*$tpl.*$/)
> > > {
> > > print "Ok\n";
> > > }
> > >
> > > (Ваш код)
> > > работает точно так же.
> > > Просто ^.* и .*$ - лишнее, строка же обязательно начинается и
> > > обязательно заканчивается =)
> >
> > В том то и дело, что нет! В регулярных выражениях (по крайней
> > мере в perl) символ $ обозначает конец строки, а не начало
> > имени
> > переменной. Такой код не работает - уже пробовал - он всегда
> > дает
> > истину вне зависимости от содержимого $_ лишь бы она была
> > определена.
> > Эффектиивной частью такого кода остается ^.*$ то есть любые
> > символы любое число раз, а дальше $ уже пофигу, строка то уже
> > кончилась...
> 
> [ujo@ninth ujo]$ perl -e '$tt = "babuby";$_ = "sahfdhsagfbabubydskfdsjkgf";print /$tt/,"\n"'
> 1
> [ujo@ninth ujo]$ perl -e '$tt = "babuby";$_ = "sahfdhsagfbabbydskfdsjkgf";print /$tt/,"\n"'
> 
> [ujo@ninth ujo]$
> 
> А вот это как? ;)
> 

Видимо у меня /dev/hands на бок съехали...
Ну вобщем я еще раз убедился - либо надо программировать
постоянно, либо не делать этого вовсе :-((
Однако жизнь заставляет...

Спасибо всем откликнувшимся!

-- 
******** FIRE & STEEL ********



^ permalink raw reply	[flat|nested] 9+ messages in thread

* [mdk-re] Re: Обратно perl
  2001-07-20 12:33     ` Sergey Degtyaryov
  2001-07-20 12:46       ` cornet
@ 2001-07-21  0:28       ` Mikhail Zabaluev
  1 sibling, 0 replies; 9+ messages in thread
From: Mikhail Zabaluev @ 2001-07-21  0:28 UTC (permalink / raw)
  To: cornet

Hello Sergey,

On Fri, Jul 20, 2001 at 12:48:30PM +0400, Sergey Degtyaryov wrote:
>
> perldoc perlop на предмет поиска
> perldoc perlre на предмет regexp

А также perlsyn, perlvar, ...

-- 
Stay tuned,
  MhZ                                     JID: mookid@jabber.org
___________
Matz's Law:
	A conclusion is the place where you got tired of thinking.



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2001-07-21  0:28 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-07-20 11:35 [mdk-re] Обратно perl cornet
2001-07-20 11:55 ` [mdk-re] " Sergey Degtyaryov
2001-07-20 12:23   ` cornet
2001-07-20 12:33     ` Sergey Degtyaryov
2001-07-20 12:46       ` cornet
2001-07-20 12:59         ` Sergey Degtyaryov
2001-07-20 13:00         ` Artem K. Jouravsky
2001-07-20 13:11           ` cornet
2001-07-21  0:28       ` [mdk-re] " Mikhail Zabaluev

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git