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()'將原始代碼中的值轉換爲整數。 –