Как получить значения из скобок? - PullRequest
0 голосов
/ 19 января 2011

У меня есть значение Mac (пользователь, имя)

Как использовать выражение perl reg для проверки значений в скобках.

Значение: Mac (пользователь, имя) Удалите Mac .. и выполните проверку (имя пользователя, имя), чтобы проверить, содержит ли он «пользователь» ...

Спасибо за помощь !! : D

Ответы [ 3 ]

4 голосов
/ 19 января 2011

А как же:

#!/usr/bin/perl
use strict;
use warnings;
use 5.10.1;

my $input = q!Mac(user, name)!;

my ($user, $name) = $input =~ /^.*?\((.+?),\s*(.+?)\)$/;

say "user=$user , name=$name";

выход:

user=user , name=name
0 голосов
/ 19 января 2011

Разделенное решение очень хрупкое, если строка плохо отформатирована, она выдаст неожиданные результаты.

Если вы хотите быть более строгим, вы можете использовать это:

my $input = 'Mac(user, name)';

if (my ($user, $name) = $input =~ / Mac \( ([^,]+?) , ([^,]+?) \) /x) {
    say "user: $user, name: $name";
} else {
    die "input string '$input' is wrongly formatted";
}
0 голосов
/ 19 января 2011

спасибо всем ... мне удается использовать сплит для получения данных из моего значения

my @array = split (/[()]/, $input);

С этим .. мое значение хранится в $ array [1]:)

...