Im寻找一种方法来否定xquery中的正则表达式。 使用Oracle和XMLQuery函数。XQuery否定正则表达式
我给一个例子第一:
XMLQuery(
'for $number in ("2a2", "32", "1234", "12", "32a3", "")
where ora:matches($number,"^[0-9]{4}$")
return xs:integer($number)'
passing xml RETURNING CONTENT
)
这个完美的作品,除了一两件事。我想得到与模式不匹配的条目完全相反的结果。
我试图
where fn:not(ora:matches($number,"^[0-9]{4}$"))
where ora:matches($number,"^[0-9]{4}$") = false()
where ora:matches($number,"^[0-9]{4}$") = fn:false()
,所有给我这个
ORA-01722:UngültigeZahl 01722. 00000 - “无效号码” *原因:指定的号码无效。 *操作:指定一个有效的号码。
我认为Oracle正则表达式支持查找变通。试试'^(?![0-9] {4} $)。* $'。 –
不会给我一个错误,但都不会返回不匹配的元素(“2a2”,“32”,“12”,“32a3”,“”) – user5334993
您是否指定'return $ number'?您用'xs:integer()'将原始代码中的值转换为整数。 –