Автор Тема: Удаление нумерованных переменных  (Прочитано 2126 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Alone

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 182
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
допустим мне нужно выделить из переменной $a цуфру а потом из $b другую
делаю например так:
$a="a:12:b";
$a=~/^a:(\\d+):b$/;
print "n1=$1";
# выводит n1=12 (все нормально)
$b="a:15:b";
$b=~/^a(\\d+):b$/; # создаю ситуацию не нахождения
print "n2=$1";
# выводит n2=12 (т.е. выводит предыдущюю $1)

Конечно можно делать так $b=~/.?/;
или так @c=$b=~/^a(\\d+):b$/; и ссылатся не на $1 а на $c[0]
Но вот интересно есть ли какие-нибуть другие способы?

P.S. И вот что интересно
$a="a:12:b";
$a=~/^a:(\\d+):b$/;
print "n1=$1";
# выводит n1=12
$b="a:15:b";
$b=~//;
print "n2=$1";
# выводит n2=15
« Последнее редактирование: 13 Июня 2003, 12:57:02 от Alone »

Оффлайн mike

  • ProPerl\'er
  • Старожил
  • ****
  • Сообщений: 435
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Удаление нумерованных переменных
« Ответ #1 : 13 Июня 2003, 13:30:18 »
Цитировать
Alone:
Но вот интересно есть ли какие-нибуть другие способы?

Используй проверку успешности совпадения:
$a="a:12:b";
if ($a=~/^a:(\\d+):b$/)
{ print "n1=$1" }
# выводит n1=12 (все нормально)
$b="a:15:b";
if ($b=~/^a(\\d+):b$/) # создаю ситуацию не нахождения
{ print "n2=$1" } # в данном случае ничего не выведется

Цитировать
Alone:
P.S. И вот что интересно
$a="a:12:b";
$a=~/^a:(\\d+):b$/;
print "n1=$1";
# выводит n1=12
$b="a:15:b";
$b=~//;
print "n2=$1";
# выводит n2=15

При использовании пустого выражения в m// используется последнее успешно совпавшее.
[ основной браузер когда-то был, теперь попробуй разберись =]

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28