我对正则表达式比较新,可以使用一些帮助.有人可以提供正则表达式(我使用Perl)从URL中提取查询字符串吗?我尝试了以下但得到一个空字符串:
my $string = 'http://www.google.com?queryArg1=1&queryArg2=2';
$string =~ s/^(.*)?//;
Run Code Online (Sandbox Code Playgroud)
理想情况下,此示例将提供以下字符串:queryArg1 = 1&queryArg2 = 2
如果你可以把它变成一个哈希,那就更棒了:
my $hash = {queryArg1 => 1,
queryArg2 => 2};
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
use URI qw( );
my $uri = 'http://www.google.com?queryArg1=1&queryArg2=2';
$uri = URI->new($uri);
my $query = $uri->query();
say $query;
my %form = $uri->query_form();
say "$_: $form{$_}"
for keys(%form);
Run Code Online (Sandbox Code Playgroud)
使用平面散列显然无法处理重复的参数,并且会丢失参数顺序.加载URI :: QueryParam为URI对象添加了更多方法,如果你需要那些东西,你会发现它们很有用.