# [OS X TeX] Regex to catch more than one line

Alan Munn amunn at gmx.com
Sat Nov 20 11:07:46 EST 2010

On Nov 20, 2010, at 10:13 AM, Frank STENGEL wrote:

> Hello,
>
> I am trying (and failing) to write a regular expression that catches
> text (split on more than one line or not) that is between $$'s in > order to replace these$$'s by \begin{equation*}...\end{equation*}
>
> I tried
>
> \$\$(.*)\$\$

* is greedy, so you don't want to use it to find delimited text. (It
will incorrectly find "$X$  foo $Y$" instead of two instances of $X$
and $Y$. You should use the non-greedy version .*? (or .+?)

>
> as the expression to be found. Alas this does not work if the
> displayed math is coded using more than one line.

Using the Perl regular expression engine you can use the following:

\$(?s)(.+?)\$

the (?s) tells the regex interpreter to treat . as truly any character
(including newlines).

(I don't know which editor you are using; if you're using TeXShop,
click on the More Options button in the Find window and make sure that
Perl search syntax is chosen.

Alan

--
Alan Munn
amunn at gmx.com