2014-09-03 94 views
-1

我想寫使用REGEXP_REPLACE函數替換特殊字符,如%的查詢替換%,!,*等。在文本中用/特殊字符。REGEXP替換/%

例如: '100%的結果' 到 '100 /%,結果'

'ABC * d' 爲 'ABC/* d'

任何人都可以請幫助。

我正在使用Oracle 11g。

+2

你爲什麼要使用'REGEXP_REPLACE'並不僅僅是'REPLACE'?另外,您是否查找過要使用的函數的語法?到目前爲止你嘗試過什麼,出了什麼問題? – GolezTrol 2014-09-03 11:18:59

+1

那麼定義這些要求的人就是白癡,請原諒我的法語,或者你誤解了他們。 :) – GolezTrol 2014-09-03 11:23:05

+0

「etc」是什麼意思?所有非字母數字字符? (即除字母,數字和空格之外的所有字符?) – Jerry 2014-09-03 12:58:35

回答

0

使用否定的字符類:

[^a-zA-Z0-9 ] 

指任何字符,除了:從az

  • 字符,
  • 字符從從0到到Z
  • 字符,
  • 空間

REGEXP_REPLACE(text, '([^a-zA-Z0-9 ])', '/\1') 

SQLFiddle demo

+0

謝謝@Jerry。它可以工作,但是當文本包含&或'時,它不會。 – 2014-09-05 07:41:09

+0

@WamglindCarmasaic我不知道它是如何不工作?它看起來對我工作正常,看到[更新的小提琴](http://www.sqlfiddle.com/#!4/4c0b97/1) – Jerry 2014-09-05 07:49:33

+0

我正在使用TOAD,它不允許我插入'AB&D'' ASD」。它爲替代變量打開一個窗口。 – 2014-09-05 08:05:37

1

如何:

REGEXP_REPLACE(field, '%', '/%')