[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







More information about the MacOSX-TeX mailing list