MarkLogic 将函数与正则表达式匹配
MarkLogic matches function with regular expression
我是 XQuery 的新手,请您帮我理解下面 MarkLogic XQuery 中的 §
和 §.*$
是什么:
if (matches($cite, '§'))
replace($cite,'§.*$','')
此处$cite := "HI CONST Preamble"
在正则表达式中,正则表达式中的 $
is an anchor point 到输入字符串值的末尾。
§
是 numeric entity reference of the §
character, and .
is a wildcard and the *
is a quantifier 表示零到多。
matches()
表达式正在测试 $cite
是否包含 §
字符。如果是,那么它会尝试 replace()
§
和它后面的所有字符,直到输入结束,什么都不做。
例如:
let $cite := "HI CONST Preamble"
return
if (matches($cite, '§'))
then replace($cite,'§.*$','')
else "no match"
returns:“不匹配”,因为它根本不包含 §
。
然而,这:
let $cite := "HI CONST Preamble §foo bar baz."
return
if (matches($cite, '§'))
then replace($cite,'§.*$','')
else "no match"
Returns:“HI CONST Preamble”因为确实包含§
,所以§foo bar baz.
被替换为“.
我是 XQuery 的新手,请您帮我理解下面 MarkLogic XQuery 中的 §
和 §.*$
是什么:
if (matches($cite, '§'))
replace($cite,'§.*$','')
此处$cite := "HI CONST Preamble"
在正则表达式中,正则表达式中的 $
is an anchor point 到输入字符串值的末尾。
§
是 numeric entity reference of the §
character, and .
is a wildcard and the *
is a quantifier 表示零到多。
matches()
表达式正在测试 $cite
是否包含 §
字符。如果是,那么它会尝试 replace()
§
和它后面的所有字符,直到输入结束,什么都不做。
例如:
let $cite := "HI CONST Preamble"
return
if (matches($cite, '§'))
then replace($cite,'§.*$','')
else "no match"
returns:“不匹配”,因为它根本不包含 §
。
然而,这:
let $cite := "HI CONST Preamble §foo bar baz."
return
if (matches($cite, '§'))
then replace($cite,'§.*$','')
else "no match"
Returns:“HI CONST Preamble”因为确实包含§
,所以§foo bar baz.
被替换为“.