0

私は値Mac(ユーザー、名前)を持っています

perl reg 式を使用して括弧内の値をチェックするにはどうすればよいですか。

値: Mac(user,name) Mac を削除し、(user,name) をチェックして、「user」が含まれているかどうかを確認します...?

手伝ってくれてありがとう!!:D

4

3 に答える 3

4

どうですか:

#!/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
于 2011-01-19T08:48:22.227 に答える
0

分割ソリューションは非常に脆弱です。文字列のフォーマットが不適切な場合、予期しない結果が返されます。

より厳密にしたい場合は、これを使用できます:

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";
}
于 2011-01-19T16:08:41.850 に答える
0

どうもありがとう...分割を使用して、値からデータを取得することができました

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

これで..私の値は$array[1]内に保存されます:)

于 2011-01-19T07:27:10.160 に答える