2016-12-24 140 views
0

Regexp_replace需要被轉換成Netezza的語法:轉換甲骨文REGEXP_REPLACE功能到Netezza公司

regexp_replace(COLUMN_NAME,'([[:cntrl:]])|(^\t)|(\s+$)',null) 

從我個人理解, cntrl替換控制字符 ^\t替換標籤 \s+$取代尾隨空格

請幫幫我! 請更正我對Oracle當前正則表達式的理解。

+0

'^ \ t'只替換一個製表符(而不是「製表符」),並且只有它是字符串中的第一個字符('^'的含義)。這是一些由別人寫的代碼,你想翻譯成不同的語言?如果你不確定它的作用,爲什麼你需要翻譯它? – mathguy

+0

耶!別人寫了它。我需要它,因爲我需要Netezza – user3197677

回答

1

你幾乎是正確的。

([[:cntrl:]])|(^\t)|(\s+$) 
  1. [:cntrl:] —匹配控制字符
  2. \t —匹配標籤
  3. ^\t表達式—表達式—匹配非標籤字符
  4. 之間匹配的 ^和製表符一起
  5. [^\t]在之間
  6. ^\t在開始—匹配領先的製表符
  7. \s+$ —匹配的文本與尾隨空格

實際上,你的表達將匹配 - 第一控制字符,導致標籤或尾隨空格。

+0

中的確切功能,謝謝!這有幫助。 Netezza轉換部分的任何信息? – user3197677

+0

什麼是Netezza語法?可以在問題中發佈一些示例 – GurV

+0

此正則表達式替換函數在netezza中不起作用!所以我想把它轉換成一個函數或者一組函數,它們在Netezza中執行與這個相同的替換。例如: oracle:regexp_replace(列,'a','A')netezza:translate(列,'a','A') – user3197677