[OS X TeX] ifthen and regular expressions

Jeffrey J Weimer weimerj at email.uah.edu
Thu May 24 11:26:21 EDT 2007

On May 23, 2007, at 2:59 PM, Friedrich Vosberg wrote:

> Am 15.05.2007 um 17.11 schrieb Jeffrey J Weimer:
>> On May 15, 2007, at 7:13 AM, Friedrich Vosberg wrote:
>>> Does someone of You know how to get an ifthenelse switch that is  
>>> TRUE if the expansion of the given macro contains a given string.  
>>> For example:
>>> \def\string{court}
>>> \def\pattern{Royal High Court of Westminster}
>>> \ifthenelse{contains{\string}{\pattern}{%
>>>   TRUE
>>> }{%
>>>   FALSE
>>> }
>> The coolstr package may be able to handle this.

I think a better way to do this is to split the pattern of words and  
match each word separately (again through a loop) using a simple  
\ifthenelse{\equal{word#N}{matchword}}{TRUE}{FALSE}. If the pattern  
always had the same number of words (say 5), then this might work ...

\def\FindStrInStr#1<#2 #3 #4 #5 #6>{

\ifthenelse{\FindStrInStr{Court}<Royal High Court of Westminster>}{do  
if true}{do if false}

Putting this into a loop that would parse out each word of the  
pattern and pass it to be tested would be the next step. I have tried  
to do this, however I have run into the limitation that definitions  
parse input arguments as characters. Below is the beginning part of  
what I have set up so far. I cannot figure out how to test whether  
the argument passed to \fv at nextstep is the LAST word of the string ...

\def\fv at nextstep#1 #2{almost true (#1)(#2)}
\def\fv at checkstrmatch<#1>#2 #3{%
			\fv at nextstep#3%
\def\FindStrInStr#1#2{\fv at checkstrmatch<#1>#2}


Here is a test to try men's souls ...

\FindStrInStr{Court}{High Court}


J. J. Weimer, Chemistry / Chemical & Materials Engineering
University of Alabama in Huntsville, MSB 125, 301 Sparkman Dr
Huntsville, AL 35899                phone: 256-824-6954

------------------------- Helpful Info -------------------------
Mac-TeX Website: http://www.esm.psu.edu/mac-tex/
TeX FAQ: http://www.tex.ac.uk/faq
List Archive: http://tug.org/pipermail/macostex-archives/
List Reminders & Etiquette: http://www.esm.psu.edu/mac-tex/list/

More information about the MacOSX-TeX mailing list