[英]Regex for Special Characters in XQuery
嗨,我是一名Java開發人員,最近幾天我在OSB上工作。 我需要從字符串中刪除所有空格字符。 為此,我嘗試在Assign
塊中遵循以下代碼。
if(exists($Variable) and not(empty($Variable/text())))then
fn:replace(fn:replace(fn:replace(fn:replace(
fn:replace($Variable/text(),'[$`,:%!@#_-|]',''),
'[$?~@#!%:;=_+*]', ''), '[.]', ''), '[-]', ''), '[+= ?;]', '')
else
$Variable
但是我想在一個正則表達式中做到這一點。 所有這些字符都不能在單個Regex字符串中使用。 有沒有辦法在單個Regex字符串中執行此操作?
我找到了一個方法functx:escape-for-regex
但是它不起作用。 目前,我正在使用Oracle 10g。
我想要這樣的東西:
"[^\\w-]|[$_-]" //It works in Java
提前致謝。
無需使用正則表達式即可從黑名單中刪除某些字符,只需使用translate(...)
:
translate($string, '-$`,:%!@#_|]$?~@#!%:;=_+*.-+= ?;', '')
不過,我沒有清理字符列表。
正則表達式的問題是列表中的破折號: [$`,:%!@#_-|]
。 此正則表達式阻止從_
(字符95)到|
所有字符|
(字符124)。 這包括所有小寫字母! 始終將破折號放在前面: [-$`,:%!@#_|]
。
無論如何:如果可能,最好使用白名單。 您將永遠忘記一些字符。 大括號呢?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.