【发布时间】:2010-06-17 22:32:10
【问题描述】:
我有一些要在 Perl 中解析的数据,并且会在不久的将来添加越来越多不同格式的数据。我想做的是编写一个易于使用的函数,我可以将一个字符串和一个正则表达式传递给它,它会返回括号中的任何内容。它会像这样工作(伪代码):
sub parse {
$data = shift;
$regex = shift;
$data =~ eval ("m/$regex/")
foreach $x ($1...$n)
{
push (@ra, $x);
}
return \@ra;
}
那么,我可以这样称呼它:
@subs = parse ($data, '^"([0-9]+)",([^:]*):(\W+):([A-Z]{3}[0-9]{5}),ID=([0-9]+)');
如您所见,此代码存在一些问题。我不知道 eval 是否可以工作,'foreach' 肯定不会工作,而且不知道有多少括号,我不知道循环多少次。
这对于拆分来说太复杂了,所以如果我忽略了其他功能或可能性,请告诉我。
感谢您的帮助!
【问题讨论】:
标签: regex perl eval subroutine