如何使用Perl使用regexp从$ str创建$ var

时间:2016-09-20 13:55:37

标签: regex string perl

我有

$str = "dfsdfsdfsd fdsdfs ifdasda id=322dasd-ewwedasda"

并写了一个正则表达式

\id\=\w.+

我需要得到结果

$string = "id=322dasd-ewwedasda"

2 个答案:

答案 0 :(得分:1)

my $str = 'dfsdfsdfsd fdsdfs ifdasda id=322dasd-ewwedasda';
my ($string) = $str =~ /\b(id=\w.+)/;
如果没有匹配,

$string将是undef。如果使用以下内容不匹配,您也可能死亡:

my ($string) = $str =~ /\b(id=\w.+)/
    or die("No match!");

虽然\w.+是一种非常奇怪的模式。也许你想要\w+

答案 1 :(得分:1)

这并不难。你有什么尝试吗?

只是为了让这件事不受影响

use strict;
use warnings 'all';
use feature 'say';

my $str = "dfsdfsdfsd fdsdfs ifdasda id=322dasd-ewwedasda";

($str) = $str =~ /\b(id=\S+)/;
say $str;

输出

id=322dasd-ewwedasda