Учитывая сообщение об ошибке, я ожидаю, что вам нужно объявить пространство имен rdf
, прежде чем использовать его в имени атрибута rdf:resource
.
(Ваша проблема не имеет ничего общего с XPath - она завершается неудачно при попытке проанализировать XML до запуска какого-либо кода XPath.)
Используйте /g
модификатор в Вашем соответствии. От perlop
руководство:
"
/g
"модификатор указывает глобальное сопоставление с образцом - то есть, соответствуя максимально много раз в строке. То, как это ведет себя, зависит от контекста. В контексте списка это возвращает список подстрок, подобранных любыми круглыми скобками получения в регулярном выражении. Если нет никаких круглых скобок, это возвращает список всех совпавших строк, как будто были круглые скобки вокруг целого шаблона.В скалярном контексте, каждом выполнении"
m//g
"находит следующее соответствие, возвращая true, если это соответствует, и ложь, если нет никакого дальнейшего соответствия. Положение после последнего соответствия может быть считано или установило использованиеpos()
функция; см."pos
"вperlfunc
. Неудавшееся соответствие обычно сбрасывает поисковое положение к началу строки, но можно избежать этого путем добавления"/c
"модификатор (например,".m//gc
"). Изменение целевой строки также сбрасывает поисковое положение.
Для построения на ответе Chris является, вероятно, самым необходимым монтировать в корпус //g
regex в a while
цикл, как:
my @matches;
while ( 'foobarbaz' =~ m/([aeiou])/g )
{
push @matches, $1;
}
Вставка некоторого быстрого Python ввод-вывод:
>>> import re
>>> re.findall(r'([aeiou])([nrs])','I had a sandwich for lunch')
[('a', 'n'), ('o', 'r'), ('u', 'n')]
Для получения чего-то сопоставимого в Perl конструкция могла быть чем-то как:
my $matches = [];
while ( 'I had a sandwich for lunch' =~ m/([aeiou])([nrs])/g )
{
push @$matches, [$1,$2];
}
Но в целом, безотносительно функции Вы выполняете итерации для, можно, вероятно, сделать в while
сам цикл.
Хорошая ссылка новичка с подобным содержанием к ответу @kyle: Учебное руководство по Perl: Используя регулярные выражения