Я работаю над программами на Perl, чтобы анализировать XML и выполнять регулярные замены строк в данных.Я прочитал пару статей о подстановке строк с использованием Perl.
При замене исходного значения целевой строкой они используют некоторые $
переменные ($1
, $2
, $3
и $4
так далее.).Как шаблон хранит значения при сравнении строк?
Пожалуйста, найдите пример кода, который я ищу.
Пример XML-файла
<Para>
<Hyperlink Display="hide" Protocol="http" URN="https://www.basicurl.org/oid/10.1161/RIA.0000abc">
AHA
</Hyperlink>
(Free)
</Para>
<Para>
<Hyperlink Display="hide" Protocol="http" URN="https://www.abcd.com">
Background: some text with multiple lines
</Hyperlink>
(i have three lines of code)
</Para>
</Comment>
Целевое достижение
$Str =~ s|<Hyperlink\b[^\>]*?>([^\xFF]*?)([12][890][0-9]{2})([^\xFF]*?)</Hyperlink>|<Emph Emph.Type="Italic">$1</Emph>$2$3|g;
Насколько я понимаю, мы выбираем данные гиперссылки и заменяем значение в $str
./g
представляет глобальную замену.Каковы значения $1
, $2
и $3
из указанного выше входного файла?