Forum Webscript.Ru
Программирование => Регулярные выражения => Тема начата: Error202 от 15 Мая 2008, 16:17:31
-
Надо вытащить все переменные, имена которых больше 1-о символа из Perl скрипта
Задаются они там $name
$name[], $name{} - не нужны
Пишу шаблон:
\\$([a-zA-Z0-9_]{2,})
Вытаскиваются все $name, $name[, $name{
Как мне исключить обработку $name[], $name{}?
-
my $str = \'$name asdfas $name1[1 ] $name2{ $name3 }\';
@foo = $str =~ m/(\\$[a-zA-Z0-9_]{2,}(:?\\s+)?[\\[|\\{]?)/g;
@foo = grep(!/\\$[a-zA-Z0-9_]{2,}(:?\\s+)?[\\[|\\{]/, @foo);
print $_,"\\n" for(@foo);
только вот в скобках внутни фигня получаеся;
может все таки есть какая нибудь переменная среды, откуда можно получить доступ ко всем переменным объявленным в нэймспейсе