私は値Mac(ユーザー、名前)を持っています
perl reg 式を使用して括弧内の値をチェックするにはどうすればよいですか。
値: Mac(user,name) Mac を削除し、(user,name) をチェックして、「user」が含まれているかどうかを確認します...?
手伝ってくれてありがとう!!:D
どうですか:
#!/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
分割ソリューションは非常に脆弱です。文字列のフォーマットが不適切な場合、予期しない結果が返されます。
より厳密にしたい場合は、これを使用できます:
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";
}
どうもありがとう...分割を使用して、値からデータを取得することができました
my @array = split (/[()]/, $input);
これで..私の値は$array[1]内に保存されます:)