0

我有一个值 Mac(user, name)

我如何使用 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 @array = split (/[()]/, $input);

有了这个..我的价值是存储在 $array[1] :)

于 2011-01-19T07:27:10.160 回答
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 回答