On Tue, 10 Jul 2007 09:55:18 -0500, Len Morgan wrote:
> I need to find the last matching character offset of a string withing
> another string. The offset function only gives me the first one. Is
> there a function I'm missing (like "offset from end of string") or a
> one or two liner I can use?
>
> Example:
>
> approved_by_code - I'm looking for the offset to the second "_"
> character so the result should be 12 in this example. It is also
> possible that there will only be one "_" character in which case,
> that is the offset I want.
Well, here you go - regex is normally "greedy" (meaning it find the
last match in a string), but Rev's is "non-greedy", so it finds the
first match. So if you did this:
on mouseUp
if matchChunk("approved_by_code","(_)",tStart,tEnd) then
put tStart,tEnd
else
put "not found"
end if
end mouseUp
You'd get "9,9" in the message box - the first hit. So you need to
reverse the "greediness" of the match using the (?U) directive. This
one works to find the last occurrence:
on mouseUp
if matchChunk("(?U)approved_by_code","(_)",tStart,tEnd) then
put tStart,tEnd
else
put "not found"
end if
end mouseUp
HTH,
Ken Ray
Sons of Thunder Software, Inc.
Email: [EMAIL PROTECTED]
Web Site: http://www.sonsothunder.com/
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution