- or download this
s{(<value>|\G)(.+?)\|(.+?)\|(.*?)(?=</value>)}
{$1$2</value><name>$3</name><value>$4}sg;
- or download this
Pass 1: <name>(test)</name><value>(431)|
Pass 2: (alpha)|(123)|
Pass 3: (bravo)|(542)|
Pass 4: (charlie)|(412)</value>
- or download this
Pass 1: <value>(431)|(alpha|123|bravo|542|charlie|412)
- or download this
s{(?:<name>(.*?)</name><value>|\G([^|]*?)\|)([^|]*?)(?:\||</value>)}{
"<name>" . (defined($1)?$1:$2) . "</name><value>$3</value>"
}seg;
- or download this
s{<name>(.*?)</name><value>(.*?)</value>}{
my $s = "|$1|$2";
$s =~ s{\|([^|]*)\|([^|]*)}{<name>$1</name><value>$2</value>}sg;
$s
}seg;