David Arnold <[EMAIL PROTECTED]> wrote:
: Suppose I have a number of lines in a latex file like this:
:
: \backans{If $x=y^{2n}$ and $z=y^{3n}_{11}$, then we can
: substitute to find a solution.}
:
: I'd like to scan the file and replace all of these with
: this format:
:
: \begin{answer}
: If $x=y^{2n}$ and $z=y^{3n}_{11}$, then we can substitute
: to find a solution.
: \end{answer}
:
: I'm looking for suggestions as to how to make this change
: with my perl script. I am puzzled by the use of nested
: braces and how I can be sure I've got everything between
: the opening and closing brace.
As long as the lines do not wrap, you don't need to
worry about the nesting. Perl regexes are greedy by
default. So '.+' will try to suck in the longest match
possible. Which is just what you want.
while ( <DATA> ) {
printf "\\begin{answer}\n%s\n\\end{answer}\n", $1 if /^\\backans{(.+)}/;
}
__END__
\backans{If $x=y^{2n}$ and $z=y^{3n}_{11}$, then we can ...}
\backans{If $x=y^{2n}$ and $z=y^{3n}_{11}$, then we can ...}
\backans{If $x=y^{2n}$ and $z=y^{3n}_{11}$, then we can ...}
\backans{If $x=y^{2n}$ and $z=y^{3n}_{11}$, then we can ...}
HTH,
Charles K. Clarkson
--
Mobile Homes Specialist
254 968-8328
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>