[xquery-talk] string manipulation
John Snelson
jsnelson at sleepycat.com
Mon Feb 6 00:13:54 PST 2006
Michael Kay wrote:
>>>>replace("book/title/author", "/.*?$", "")
>>>
>>> Does this garantee to return "book/title" and not "book" ? The
>>>longuest match would win, doesn't it ? Personally, I'd use
>>
>>the regexp
>>
>>>'/[^/]*$'. BTW, why the '?' after the '*' ?
>>
>>"*?" is a reluctant version of the "*" quantifier, meaning it matches
>>the shortest sequence, rather than the longest. My regular expression
>>works because of this - but yours will work as well.
>
>
> No, I don't think that "/.*?$" does work. The distinction between .* and .*?
> is that given several matches starting _at the same position_, .* will
> choose the longest while .*? chooses the shortest. But it won't cause
> backtracking to try and find a different match for the "/".
I guess I didn't fully understand reluctant quantifiers then. Thanks for
clarifying that.
John
--
John Snelson, Berkeley DB XML Engineer
Sleepycat Software, Inc
http://www.sleepycat.com
Contracted to Sleepycat through Parthenon Computing Ltd
http://blog.parthcomp.com/dbxml
More information about the talk
mailing list