我有一个值 Mac(user, name)
我如何使用 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 @array = split (/[()]/, $input);
有了这个..我的价值是存储在 $array[1] :)
拆分方案非常脆弱,如果字符串格式错误,会返回意想不到的结果。
如果你想更严格,你可以使用这个:
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";
}