Hi Blessing,

I could be wrong, but I thought lookaheads are not supported in XPath:

http://www.w3.org/TR/xpath-functions/#regex-syntax


I am guessing you are trying to get rid of the extra braces for better
user readability? A little more heavy, but potentially a very powerful
approach would be to use search:parse to turn the search string into a
query expression, manipulate that, and then use search:unparse to convert
it back to a search string. I have done so to apply term expansion..

Kind regards,
Geert

On 1/14/15, 11:21 AM, "Blessing N" <[email protected]> wrote:

>Hi,
>
>The positive lookahead regular expression which I have constructed
>below throws  the following error
>
>[1.0-ml] XDMP-REGEX: (err:FORX0002)
>fn:replace("(search:&quot;good&quot;) OR (search:&quot;this(world) is
>good&q...", "\)(?=([^&quot;]*[&quot;][^&quot;]*[&quot;])*[^&quot;]*$)",
>"") -- Invalid regular expression
>
>The Regex is
>
>let $str := '(search:"good") OR (search:"this(world) is good") OR
>(search:"world")'
>return fn:replace(fn:replace($str,'\)(?=([^"]*["][^"]*["])*[^"]*$)',
>""),'\((?=([^"]*["][^"]*["])*[^"]*$)', "")
>
>Expected result >> search:"good" OR search:"this(world) is good" OR
>search:"world"
>
>Basically I'm trying to remove the open and closed brackets withing
>the string but wanted them to be excluded if enclosed within double
>quotes.
>
>How to achieve positive lookahead using regex in Xquery?
>
>Thanks,
>Blessing.
>_______________________________________________
>General mailing list
>[email protected]
>http://developer.marklogic.com/mailman/listinfo/general

_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to