Articles

Oracle REGEXP_LIKE Examples

Regular expressions are patterns used to match character combinations in strings. Az Oracle 10g bemutatta a reguláris kifejezések támogatását különböző funkciók használatával. Ez a bejegyzés az Oracle REGEXP_LIKE függvényre összpontosít, és elmagyarázza, hogyan kell használni.

leírás

Az Oracle REGEXP_LIKE egy reguláris kifejezés-illesztés végrehajtására szolgál (nem pedig egy egyszerű mintaillesztésre, amelyet hasonló végez).

syntax

REGEXP_LIKE ( string expression, pattern )
  • string expression – the string expression.
  • pattern-a reguláris kifejezés megfelelő minta
  • match paraméter-lehetővé teszi, hogy módosítsa az alapértelmezett megfelelő viselkedését az Oracle REGEXP_LIKE funkció(például változtatni a keresést eset érzékeny eset érzéketlen).

Basic Oracle REGEXP_LIKE Examples

Kezdjük azzal, hogy létrehozunk egy nevű táblázatot, amelynek értékei alapján a következő Oracle REGEXP_LIKE példák különböző reguláris kifejezés-kereséseket hajtanak végre.

CREATE TABLE namesASSELECT last_name AS NAMEFROM hr.employeesORDER BY salary ;

a következő Oracle REGEXP_LIKE példa a ” z ” betűt tartalmazó összes nevet lekéri. Ez az Oracle SELECT utasítás valójában nem korlátozza a betűk számát A ” z “betű előtt vagy után (tetszőleges számú karakter megengedett), de megköveteli, hogy a szó tartalmazza a” z ” betűt.

SELECT *FROM namesWHERE regexp_like (name , 'z') ;NAME-------------------------LorentzGietzOzer

a következő Oracle REGEXP_LIKE példa minden olyan nevet lekér, amely a ” be ” betűszekvenciát tartalmazza. Ez az Oracle SELECT utasítás ismét nem korlátozza a betűk számát A ” be “betűsor előtt vagy után (tetszőleges számú karakter megengedett), de megköveteli, hogy a szó tartalmazza a” be ” betűszekvenciát.

SELECT *FROM namesWHERE regexp_like (name , 'be') ;NAME---------------------------AbelGreenberg

A pipe (|) operátor segítségével

A Pipe operátor (|) alternatív egyezések megadására szolgál. A következő Oracle REGEXP_LIKE példában a pipe operátort (|) használnánk annak érdekében, hogy visszaszerezzük az összes olyan nevet, amely a ” be “vagy” ae ” betűszekvenciát tartalmazza. Ez az Oracle SELECT utasítás valójában nem korlátozza a betűk számát A ” be “vagy” ae ” betűsor előtt vagy után(tetszőleges számú karakter megengedett), de megköveteli, hogy a szó tartalmazza ezeket a szekvenciákat.

SELECT *FROM namesWHERE regexp_like (name , 'be|ae') ;NAME-------------------------BaerAbelRaphaelyGreenberg

A ” C ” betű megadásával (a REGEXP_LIKE funkció harmadik érveként) esetérzékeny keresést végezhetünk (az alapértelmezett az Oracle-ben).

SELECT *FROM namesWHERE regexp_like (name , 'be|ae' , 'c' ) ;NAME-------------------------BaerAbelRaphaelyGreenberg

és az ” i ” betű megadásával (a REGEXP_LIKE függvény harmadik argumentumaként) eseti érzéketlen keresést végezhetünk.

SELECT *FROM namesWHERE regexp_like (name , 'be|ae' , 'i' ) ;NAME-------------------------BellBernsteinBaerAbelRaphaelyGreenberg

Használja a Hiányjel(^) üzemeltető

használhatjuk a hiányjel (^) kezelő számára, hogy jelezze a kezdet-a-vonal karaktert, ebben a REGEXP_LIKE példát szeretnénk letölteni a neveket, hogy indítsa el a levelet-sorozat ‘lenni’ vagy ‘ba’ (az érzéketlen keresés)

SELECT *FROM namesWHERE regexp_like (name , '^be|^ba' , 'i' ) ;NAME-------------------------BaidaBellBandaBatesBernsteinBaer

Használja a Dollár ($) üzemeltető

használhatjuk a dollár ($) kezelő számára, hogy jelezze egy end-of-line karaktert, ebben a REGEXP_LIKE példát szeretnénk letölteni nevek végén a levél-sorozat ‘es’ vagy ‘er’ (az érzéketlen keresés).

SELECT *FROM namesWHERE regexp_like (name , 'es$|er$' , 'i' ) ;NAME-------------------------PhiltankerColmenaresJonesGatesDaviesNayerStilesDellingerBatesBaer

szögletes zárójelek használata

A szögletes zárójelekkel megadhatunk egy megfelelő listát, amelynek meg kell egyeznie a benne szereplő kifejezések bármelyikével. A következő Oracle REGEXP_LIKE példa minden olyan nevet lekér, amely ” j “vagy” z ” betűket tartalmaz.

SELECT *FROM namesWHERE regexp_like (name , '') ;NAME-------------------------RajsLorentzGietzOzerErrazuriz

Ez a REGEXP_LIKE példa minden olyan nevet lekér, amely a ” b “vagy” z “vagy” E “betűket tartalmazza (case sensitive search)

 SELECT * FROM names WHERE regexp_like (name , '') ;NAME-------------------------TobiasCabrioEverettLorentzPataballaErnstCambraultGietzMcEwenCambrault

ezután módosítjuk az utolsó lekérdezésünket, és érzéketlen kereséssé tesszük :

SELECT *FROM namesWHERE regexp_like (name , '' , 'i') ;NAME-------------------------PhiltankerZacharyMarkleGeePerkinsColmenaresPatelOConnellMikkilineniTobiasSeo

Ez az Oracle REGEXP_LIKE példa letölteni a nevek, amelyek tartalmazzák a leveleket, az “a”, ” b “vagy ” c”:

SELECT *FROM namesWHERE regexp_like (name , '') ;NAME-------------------------PhiltankerMarkleLandryColmenaresPatelVargasSullivanMarlowGrantMatos

helyett, amelyben meghatározza a betű az “a”, ” b “illetve” c ” külön-külön, megadhatunk egy tartomány :

SELECT *FROM namesWHERE regexp_like (name , '') ;NAME-------------------------PhiltankerMarkleLandryColmenaresPatelVargasSullivanMarlowGrantMatos

A következő Oracle REGEP_LIKE példa letölteni nevek, amelyek egy levelet, hogy a tartomány, a “d”, illetve “g”, majd az ” a ” betű.

SELECT *FROM namesWHERE regexp_like (name , 'a') ;NAME-------------------------VargasBaidaFleaurBanda

) Operátor

az időszak (.) az operátor A null kivételével bármely karakterhez illeszkedik, a következő Oracle REGEXP_LIKE példa minden olyan nevet lekér, amely ” b ” és ” g “betűtartományban tartalmaz egy betűt, amelyet bármely karakter követ, majd az” a ” betű követ.

SELECT *FROM namesWHERE regexp_like (name , '.') ;NAME-------------------------ColmenaresTobiasMcCainSarchandSewallCambraultSciarraCambrault

a periódus operátort több karakter megjelenítésére használhatjuk, a következő Oracle REGEXP_LIKE példa minden olyan nevet lekér, amely ” b ” és ” g “betűtartományban tartalmaz egy betűt, amelyet bármelyik két karakter követ, majd az” a ” betű.

SELECT *FROM namesWHERE regexp_like (name , '..') ;NAME-------------------------De HaanKochhar 

A göndör zárójelek segítségével

a göndör zárójeleket az események pontos számának megadására használják, például az összes olyan név megjelenítésére, amely kettős ” o ” betűket tartalmaz.

SELECT *FROM namesWHERE regexp_like (name , '{2}') ;NAME-------------------------KhooBloom

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük