Próbuję wybrać kolumnę z tabeli zawierającej znaki nowej linii (NL) (i prawdopodobnie inne \n
, \r
, \t
). Chciałbym użyć REGEXP do wybrania danych i zastąpienia (tylko tymi trzema) znakami spacji "".Oracle Regexp, aby zastąpić n, r i t spacją
9
A
Odpowiedz
20
Nie ma potrzeby stosowania wyrażeń regularnych. Można to łatwo zrobić z kodami ASCII i nudny starych TRANSLATE()
select translate(your_column, chr(10)||chr(11)||chr(13), ' ')
from your_table;
Zastępuje przełamane, zakładki i powrót karetki z miejsca.
Funkcja TRANSLATE() jest znacznie wydajniejsza niż jej odpowiednik w wyrażeniu regularnym. Jeśli jednak twoje serce jest nastawione na takie podejście, powinieneś wiedzieć, że możemy odwoływać się do kodów ASCII w regex. Tak więc to stwierdzenie jest wersją wyrażeń regularnych powyższego.
select regexp_replace(your_column, '([\x0A|\x0B|`\x0D])', ' ')
from your_table;
Tweak jest odniesienie do kodu ASCII w systemie szesnastkowym zamiast podstawy 10.
Powiązane problemy
- 1. Jak używać RegExp Zastąpić, aby zastąpić zdanie?
- 2. Usuwanie znaków sterujących (\ n \ r \ t) z ciągu znaków
- 3. rubin regexp zastąpić równań
- 4. Emacs regexp zastąpić sytuacja
- 5. Strip \ n \ t \ r w scrapy
- 6. Niezbilansowane kotwice `^` i `$` w Oracle regexp
- 7. Łatwo: Rozwiąż T (n) = T (n-1) + n metodą iteracji
- 8. Rozwiąż: T (n) = T (n/2) + n/2 + 1
- 9. Asymptotic złożoność T (n) = T (n-1) + 1/n
- 10. Wymiana „\ r \ n” o „\ n”
- 11. Oracle SQL uzyskuje nge element regexp
- 12. Niepoprawna sekwencja escape (poprawne to \ b \ t \ n \ f \ r \ "\ '\\)
- 13. RegExp wyrażenie regularne znaleźć i zastąpić całe słowa jedynie
- 14. Co to jest (funkcja e (t, n, r) {...}) w JavaScript?
- 15. znaleźć i zastąpić sekwencję liczbową w R
- 16. Jak zdobyć n-tą kolumnę z regexp separatora
- 17. remove/n/r in tinyMCE
- 18. RegExp wykrywa wiele jednoliterowych wystąpień z rzędu?
- 19. Czy "\ n" jest pionową białą spacją, tj. Powinien "\ v" odpowiadać?
- 20. R: Jak zastąpić elementy pliku data.frame?
- 21. jak zastąpić wiele ciągów razem w Oracle
- 22. Vim: \ n vs. \ r
- 23. JavaScript zastępuje znak spacją
- 24. javascript, zamień \ n na \ r \ n
- 25. zamień \ n i \ r \ n na <br /> w java
- 26. Skrót R, aby uzyskać ostatnie n wpisów w wektorze
- 27. scala regex group dopasowanie i zastąpić
- 28. Jak grep i zastąpić
- 29. Jak zastąpić istniejącą akcję Uibutton (n?)?
- 30. Zastąp grupę przechwytującą regexp w Notepad ++?
dzięki. Ale nie chcę używać funkcji tłumaczenia zamiast używać tylko REGEXP. Jeden sposób, w jaki mogłem to zrobić, był następujący: wybierz regexp_replace ("Hello" || chr (10) || 'XYZ', '[[: cntrl:]]', '') od dual; Teraz "[[: cntrl:]]" zastąpi wszystkie niedrukowalne znaki, ale chciałem wiedzieć, jak określić tylko "\ n", "\ r" i "\ t". –
Funkcja TRANSLATE() jest znacznie bardziej wydajna niż jej odpowiednik regex. Dlaczego więc chcesz użyć wyrażenia regularnego? – APC
Ta zasada unikania znaków przy użyciu '\ x0A',' \ x0B' itp. Nie działa dla mnie. Oracle 11g. Ktoś wie z jakichś powodów? Czy istnieje ustawienie optymalizacji? – cartbeforehorse