Regex 在RSS中的标记之间匹配内容并将每个匹配插入数组-perl

Regex 在RSS中的标记之间匹配内容并将每个匹配插入数组-perl,regex,arrays,perl,rss,tags,Regex,Arrays,Perl,Rss,Tags,我不知道如何用别的词来表达我想要的东西,所以我只举一些例子来说明我所拥有的和我想要的 我有: my $rss = ("<item><title>this is a test title</title></item> <item><title>this is also a test title</title></item>"); my @items = ($rss =~ /<item>[\s

我不知道如何用别的词来表达我想要的东西,所以我只举一些例子来说明我所拥有的和我想要的

我有:

my $rss = ("<item><title>this is a test title</title></item>
<item><title>this is also a test title</title></item>");
my @items = ($rss =~ /<item>[\s.*]<\/item>/g);
my$rss=(“这是一个测试标题
这也是一个测试标题“);
my@items=($rss=~/[\s.*]/g);
最后我想说的是:

@items[0]:    <title>this is a title</title>
@items[1]:    <title>this is also a title</title>
@items[0]:这是一个标题
@项目[1]:这也是一个标题

我还希望正则表达式允许新行,这样当我用真正的RSS替换测试字符串时,它仍然可以工作。我确信我犯了很多错误,但数小时的搜索并没有让我离我想去的地方更近。

我的讲师提供的解决方案:

my @items = ($rss =~ m{<item>(.*?)</item>}gs);
my@items=($rss=~m{(.*)}gs);

可能的重复不是重复,但答案是“使用一个模块,如链接线程中所示”。讲师的解决方案在大多数情况下都可以正常工作,但我必须指出,这将在注释
、XML名称空间
、包含标签(如字符串)的CDATA部分上中断,和属性项。请将答案放在答案中,而不是问题中,并接受自己的答案。另外,你能同时从标题中删除吗。有关更多信息,请参阅!正如对您问题的评论所指出的,您的讲师的解决方案是不正确的,并且在各种情况下都会中断。