Marklogic 中的正则表达式无效

Invalid regular expression in Marklogic

我试图在一些逗号分隔的字符串中匹配独立数字,在用逗号分隔这个字符串并将它保存到变量$i之后,我使用这个正则表达式:

fn:matches(fn:normalize-space($i), "(?<!\S)\d+(?!\S)")

但是,它给了我:

[1.0-ml] XDMP-REGEX: (err:FORX0002) .

这个表达式有什么问题?

XQuery regex 表达式不支持先行和后行。

但是,如果您只是想验证该值是否为纯数值,则不需要它们。您可以将表达式锚定到值的开头和结尾,并确保所有 in-between 都是数字:

fn:matches(fn:normalize-space($i), "^\d+$")