Mar*_*tiz -3 regex string perl file
我有以下代码来获取字符串中的子字符串,我正在使用正则表达式,但它们似乎无法正常工作.我该怎么做?
我有这个字符串:
vlex.es/jurisdictions/ES/search?textolibre=transacciones+banco+de+bogota&translated_textolibre=,300,220,00:00:38,2,0.00%,38.67%,€0.00
Run Code Online (Sandbox Code Playgroud)
我想得到这个子字符串:
transacciones+banco+de+bogota
Run Code Online (Sandbox Code Playgroud)
代码:
open my $info, $myfile or die "Could not open $myfile: $!";
while (my $line = <$info>) {
if ($line =~ m/textolibre=/) {
my $line =~ m/textolibre=(.*?)&translated/g;
print $1;
}
last if $. == 3521239;
}
close $info;
Run Code Online (Sandbox Code Playgroud)
错误:
Use of uninitialized value $line in pattern match (m//) at classifier.pl line 10, <$info> line 20007.
Use of uninitialized value $1 in print at classifier.pl line 11, <$info> line 20007.
Run Code Online (Sandbox Code Playgroud)
您正在使用错误的工具来完成工作.您可以使用URI模块及其URI::QueryParam模块来提取参数:
use strict;
use warnings;
use URI;
use URI::QueryParam;
my $str = "ivlex.es/jurisdictions/ES/search?textolibre=transacciones+banco+de+bogota&translated_textolibre=,300,220,00:00:38,2,0.00%,38.67%,0.00";
my $u = URI->new($str);
print $u->query_param('textolibre');
Run Code Online (Sandbox Code Playgroud)
输出:
transacciones banco de bogota
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |