如何获取括号内的值?

发布于 2024-10-12 14:09:40 字数 138 浏览 2 评论 0原文

我有一个值 Mac(user, name)

如何使用 perl reg 表达式检查括号内的值。

值:Mac(用户,名称) 删除 Mac.. 并检查(用户,名称)以检查它是否包含“用户”...?

感谢您的帮助! :D

I have a value Mac(user, name)

How do i use perl reg expression to do a check on values inside the brackets.

Value: Mac(user,name)
Remove Mac.. and Do a check on (user,name) to check if it contains 'user'...?

Thanks for help!! :D

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

凝望流年 2024-10-19 14:09:40

怎么样:

#!/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

What about:

#!/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";

output:

user=user , name=name
霊感 2024-10-19 14:09:40

谢谢大家...我设法使用 split 从我的值中获取数据

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

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

thanks all... i manage to use split to get data from my value

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

With this.. my value is store inside $array[1] :)

z祗昰~ 2024-10-19 14:09:40

分割解决方案非常脆弱,如果字符串格式错误,将会返回意外的结果。

如果你想更严格,你可以使用这个:

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";
}

The split solution is very fragile, if the string is badly formatted, it will return unexpected results.

If you want to be more strict, you can use this :

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";
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文