之间抢夺文本我有一个大的文件,它看起来是这样的:Perl的正则表达式,标签
<Feed stack_overflow>
sourceid 32456
prefeed 1
<LOG>
level 1
cache info
</LOG>
</Feed>
我想做的事情在这个文件中的任何一个搜索和检索所有包含在饲料标签。所以,如果我做了32456的搜索,我会在上面的代码中得到一切。
的代码,我现在是:
#!/usr/bin/perl
my $input = "<Feed stack_overflow"; #Search string
my $end = "</Feed>"; #End string
open (DATA, "file.config") or die "Error";
my @list = grep /\b$input\b(.*?)\b$end\b/, <DATA>;
chomp @list;
print "$_\n foreach @list;
但我没有得到任何结果,即使强硬。我知道我搜索的存在。 我已经成功地管理打印出含有特定字符串与此正则表达式的每一行:
my @list = grep /\b$input\b/, <DATA>;
但我需要在两个标记之间打印出的一切帮助。
我会建议这样一个XML解析器:https://metacpan.org/module/XML::Parser – squiguy
是您的数据XML,还是它看起来像它? – mirod
@mirod它看起来像它。 – Twistar