Domanda

ho scoperto che \Q\E non funziona in Oracle.
Qual è l'espressione equivalente di \Q\E per Oracle regex?

È stato utile?

Soluzione

Questa è una vecchia questione, ma con Java si può fare

Pattern.quote(yourString);

che restituisce una stringa letterale. Così il . String sarebbe tornato \Q.\E, che potrebbe essere considerato un periodo dalla Matcher.

Altri suggerimenti

In Perl, \Q inizia la fuoriuscita automatica dei caratteri speciali e \E ferma questo comportamento. Quindi, all'interno di un blocco \Q \E, un punto sarebbe stato trattato come un puntino letterale, piuttosto che qualsiasi carattere.

Se Oracle non supporta questo, poi basta sfuggire caratteri speciali che sarebbero stati nel blocco.

Questa è vecchio, ma ancora un problema in Oracle Database 11g Release 11.2.0.1.0, e io non lo vedo indirizzato altrove. Quindi, nel caso in cui aiuta gli altri, la mia soluzione è:

  

selezionare manichino da doppia   dove REGEXP_LIKE (fittizio, REGEXP_REPLACE ( 'X', '([] \ ^ $ |. () [? * + {},])', '\\\ 1'))

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top