[xquery-talk] string manipulation
Michael Dyck
jmdyck at ibiblio.org
Sun Feb 5 14:42:30 PST 2006
John Snelson wrote:
>
> Instead of that, you could also try:
>
> replace("book/title/author", "/.*?$", "")
I think that won't work. Instead, two overlapping substrings
('/title/author' and '/author') both match the pattern, and the
replace() function is obliged to replace the first (leftmost) one,
resulting in just "book".
That is, the reluctance of a subpattern (like '.*?') only exerts
influence over a particular choice-point within a given partial match.
It never eliminates a match that could have occurred in the absence of
reluctance.
In F&O 7.6.3.1, note the example
replace("abracadabra", "a.*?a", "*") returns "*c*bra"
The shortest possible match for the pattern is "aca", but that match is
not one of the ones selected for replacement, because it overlaps with
the first "abra" match, and the latter is leftmost.
-Michael
More information about the talk
mailing list