This is a good use for the /e option on the substitution operator.
use strict; use warnings; $_ = <DATA>; if (/<figr n="/) { s[<figr n="(\d+)">(.*?)</figr>] [qq(<FIGIND NUM="$1" ID="FG.) . sprintf('%03d', $1) . qq(">$2</FIGI +ND>)]eg; } print; __DATA__ Nerve cells come in many shapes and sizes, but they all have a number +of identifiable parts. A typical nerve cell is shown in <figr n="1">F +igure 1</figr>. Like all other cells in the body, it has a nucleus th +at contains genetic information.<figr n="2">Figure 2</figr>. The cell + is covered by a membrane and is filled with a fluid.
"The first rule of Perl club is you do not talk about
Perl club."
-- Chip Salzenberg
In reply to Re: Matching a pattern in Regex
by davorg
in thread Matching a pattern in Regex
by rsriram
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |