Converting space- to tab-delimited

Alex Tweedly alex at tweedly.net
Mon Feb 28 15:51:26 EST 2005


James.Cass at sealedair.com wrote:

>Here is yet another version:
>
>put replaceText(tText, "\s+", tab) into tText
>
Now that you've had 3 versions (all of them correct), it might be worth 
a quick explanation, so you don't go away thinking Regex is a "black art".

RegEx allows the "unix-style" (or C-style, or Perl-style) quoting of 
special characters, so "\s" means "(space)"  - so the two versions of 
"\s+" and " +" are effectively the same - choose whichever you find 
easier to read.

Normally in regex,
   "*" (asterisk) means "0 or more of the preceding character (or 
expression)",
while
   "+" (plus) means "1 or more of the preceding character (or expression)".

So, "ab+c" would match "abc" or "abbc" or "abbbc" or ..... etc.
and "ab*c" would match all of those, and would also match "ac" ("a" 
followed by 0 "b"s followed by "c")

This means that " +" means "one or more spaces" while " *" would mean 
"zero or more spaces" -
EXCEPT that there's a special case of not matching the empty string due 
to the "*"   (that may not be the technically correct way to describe 
it, but it's the one that I can understand, and is close enough :-)

So in the special case where the *entire* regular expression is 
qualified by a "*", it acts like "one or more" instead of "zero or more".

There - simple , eh ?  :-) :-)

Seriously, there's a learning curve, but regexes are very powerful; 
there are lots of tutorials and tools available out on the web (search 
through Google - I don't have a favourite I'd recommend), including 
Frederic Rinaldi's rev-based regexbuilder - see 
http://rinaldicollection.free.fr/

-- 
Alex Tweedly       http://www.tweedly.net



-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.300 / Virus Database: 266.5.1 - Release Date: 27/02/2005



More information about the use-livecode mailing list