Sto provando a selezionare una colonna da una tabella che contiene caratteri newline (NL) (ed eventualmente altri, \r
, \t
). Vorrei usare il REGEXP per selezionare i dati e sostituire (solo questi tre) caratteri con uno spazio "".Oracle Regexp per sostituire n, r e t con lo spazio
9
A
risposta
20
Non è necessaria la regex. Questo può essere fatto facilmente con i codici ASCII e noioso vecchi TRANSLATE()
select translate(your_column, chr(10)||chr(11)||chr(13), ' ')
from your_table;
Questo sostituisce a capo, tabulazione e ritorno a capo con lo spazio.
TRANSLATE() è molto più efficiente del suo equivalente regex. Tuttavia, se il tuo cuore è impostato su tale approccio, dovresti sapere che possiamo fare riferimento ai codici ASCII nella regex. Quindi questa affermazione è la versione regex di quanto sopra.
select regexp_replace(your_column, '([\x0A|\x0B|`\x0D])', ' ')
from your_table;
Il tweak è fare riferimento il codice ASCII esadecimale anziché base 10.
Problemi correlati
- 1. javascript, sostituire \ n con \ r \ n
- 2. perl sostituire lo spazio con la scheda
- 3. Sostituzione "\ r \ n" con "\ n"
- 4. Come ottenere colonna n con delimitatore regexp
- 5. Ancoraggi `^` e `$` in Oracle regexp
- 6. sostituire \ n e \ r \ n con <br /> in java
- 7. Utilizzando tr sostituire a capo con lo spazio
- 8. Strip \ n \ t \ r in scrapy
- 9. QString :: split() e "\ r", "\ n" e "\ r \ n" convenzione
- 10. flussi, stream_bufs, faccette codecvt e \ n per \ r \ n traduzione
- 11. SED sostituire spazio vuoto con NULL
- 12. sostituire il trattino con lo spazio in PHP
- 13. asintotica complessità della T (n) = T (n-1) + 1/n
- 14. Come sostituire lo spazio con la virgola usando sed?
- 15. sostituire + con lo spazio in html Gmail/Android Chrome
- 16. Usa lo spazio rimanente allo stesso modo per n colonne
- 17. Come risolvere: T (n) = T (n - 1) + n
- 18. Javascript sostituire sottolineare con spazio
- 19. conversione dei dati con regexp in oracle sql
- 20. Come abbinare la riga finale finale con regexp?
- 21. MySQL REGEXP + spazio bianco (\ s)
- 22. Facile: Risolvi T (n) = T (n-1) + n per Metodo di iterazione
- 23. RegExp espressione regolare trovare e sostituire parole intere solo
- 24. sostituire un elenco di valori con un altro in R
- 25. Sostituire più gruppi di cattura utilizzando regexp con java
- 26. Vim regex sostituire con n caratteri
- 27. dart come abbinare e quindi sostituire un regexp
- 28. Regex per consentire alfanumerico, -, _ e lo spazio
- 29. Selezionare top N con "per l'aggiornamento Skip bloccato" in Oracle
- 30. Impossibile sostituire uno spazio con una nuova riga in Vim
Grazie. Ma non voglio usare la funzione translate, invece voglio solo usare il REGEXP. Un modo per farlo era il seguente: selezionare regexp_replace ('Hello' || chr (10) || 'XYZ', '[[: cntrl:]]', '') da doppio; Ora "[[: cntrl:]]" sostituirà tutti i caratteri non stampabili ma volevo sapere come specificare solo "\ n", "\ r" e "\ t". –
TRANSLATE() è molto più efficiente del suo equivalente regex. Allora perché vuoi usare regex? – APC
Questo principio di escape caratteri usando '\ x0A',' \ x0B' ecc., Non funziona per me. Oracle 11g. Qualcuno sa dei motivi per cui? C'è un'impostazione di ottimizzazione per questo? – cartbeforehorse