AW: How trim: Bug in RegExp engine

Dave Cragg dcragg at lacscentre.co.uk
Sun Oct 23 06:59:44 EDT 2005


On 23 Oct 2005, at 11:23, Dave Cragg wrote:
>>
>> I assumed that Revolution would do what it promised and didn't  
>> check this.
>>
>> Try
>> answer replaceText("A C","^ *","")
>> I get "C", which obviously is not correct.
>> If I remove the "*", I get "A C"
>>
>
> This may be a bug. (I'm not sure.)

To expand on why I wasn't sure if it was a bug or not.

A regular expression consisting of a single character (or single  
character set) followed by the * (zero or more matches) quantifier  
will always match. Therefore it's not really a useful construction.  
If it always matches, replaceText will presumably always try to  
replace the matched text. But in this case, it has matched an empty  
string, so I guess the engine is confused about where the replacement  
should be made. As far as I know, replaceText always works when the  
above construction is used in combination with another expression  
(e.g yx*, x*y, yx*z), so if it is a bug, I don't think it can be  
considered a serious  one.

>> answer replaceText("A C","^ +","")

The above works because the match can fail, in which case no  
replacement is made.

Cheers
Dave



More information about the use-livecode mailing list