[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: text processing as *the* problem

Quoth Dan Sugalski:
> Still, the question remains--what besides plain regexes would be 
> interesting to have when doing string processing? Dealing with tightly 
> structured nested data structures (like XML or Lisp) is one, but I'm sure 
> there are others.

One deficiency in the usual regex model is that sometimes you want to
run a nested search-and-replace.  That is, search for certain strings,
then perform a s/// (or several in sequence!) on only those substrings.
Sure, you can do this in most languages, but it takes a bit of clever
coding to get the replacement to occur on the original string.  When I
had to do this a few years ago I ended up writing a C++ wrapper around,
I believe, the rx package, but it would've been nice to just whip up a
script (Perl or otherwise).

For an example of what I mean: say you wanted to convert social security
numbers (but not cardinal numbers like "10" or "5,000") into hyphen-
delimited lists of digits.  What you want to do is something like

(find&do "\d{3}-\d{2}-\d{4}"
         (find&replace "(\d)-?" "\1-")
         (find&replace "-$" ""))

Flame away....

-=-Don Blaheta-=-=-dpb@cs.brown.edu-=-=-<http://www.cs.brown.edu/~dpb/>-=-
The trouble with being punctual is that nobody's there to appreciate it.
                                                    -- Franklin P. Jones