Megosztás a következőn keresztül:


Reguláris kifejezések – előzetes verzió

A következőkre vonatkozik: SQL Server 2025 (17.x) Előzetes verzió az Azure SQL DatabaseAzure SQL Managed InstanceSQL Database-ben a Microsoft Fabricben

Ez a cikk az SQL Server rendszeres kifejezéseit ismerteti.

Megjegyzés:

Előzetes verziójú funkcióként a cikkben bemutatott technológia a Microsoft Azure előzetes verziójának kiegészítő használati feltételeire vonatkozik.

A reguláris kifejezés, vagy röviden regex, egy karaktersorozat, amely meghatározza a szöveg keresési mintázatát. A Regex-et gyakran használják különféle feladatokhoz, beleértve a mintaegyeztetést, az adatérvényesítést, az adatátalakítást és a lekérdezést. Rugalmas és hatékony módot kínál összetett adatműveletek keresésére, kezelésére és kezelésére.

A reguláris kifejezés implementálása a RE2 reguláris kifejezéstáron alapul. További információ: RE2 Reguláris kifejezésszintaxis.

Például:

Funkció Leírás
REGEXP_LIKE Logikai értéket ad vissza, amely azt jelzi, hogy a szövegbevitel megfelel-e a regex mintának.
REGEXP_REPLACE Egy módosított forrássztringet ad vissza, amelyet helyettesítő sztring vált fel, ahol a regex minta előfordulása található.
REGEXP_SUBSTR A sztring részeit egy reguláris kifejezésminta alapján nyeri ki.

A regex mintának megfelelő alsztringek N-edik előfordulását adja vissza.
REGEXP_INSTR A megadott beállítástól függően a megfeleltetett részsztring kezdő vagy záró pozícióját adja vissza.
REGEXP_COUNT A regex minta sztringben való előfordulásának számát adja vissza.
REGEXP_MATCHES Egy rögzített részsztring(ek) tábláját adja vissza, amely megfelel egy reguláris kifejezésmintának egy sztringgel. Ha nem található egyezés, a függvény nem ad vissza sort.
REGEXP_SPLIT_TO_TABLE A regex mintával tagolt, felosztott sztringtáblát adja vissza. Ha nincs egyezés a mintával, a függvény visszaadja a sztringet.

A reguláris kifejezések literális karakterekből és metakarakterekből állhatnak, amelyek speciális jelentéssel és funkcióval rendelkeznek.

Az egyszerű reguláris kifejezés egyetlen szó szerinti karakter. A karakterek önmagukkal egyeznek, a metakarakterek kivételével. A metakarakterek közé tartozik *a , +, ?, ()vagy |. Egy metakarakter megfeleltetéséhez backslash-szal kell feloldani. Például \* egyezik a literál csillag (*) karakterrel.

Elfogadott reguláris kifejezéskarakterek

Egy karakterből álló kifejezések

Egy karakterből álló kifejezések típusai Példák
bármilyen karakter, beleértve az újsort is (s=igaz) .
karakterosztály [xyz]
negált karakterosztály [^xyz]
Perl karakterosztályok \d
negált Perl karakterosztály \D
ASCII-karakterosztályok [[:alpha:]]
tagadott ASCII karakterosztály [[:^alpha:]]
Unicode karakterosztály (egybetűs név) \pN
Unicode karakterosztály \p{Greek}
negált Unicode karakterosztály (egyetlen betűs név) \PN
negated Unicode karakterosztály \P{Greek}

Perl karakterosztályok

Az alábbi táblázat a jelenleg támogatott Perl karakterosztályokat sorolja fel.

Perl karakterosztályok (csak ASCII-hez) Leírás
\d számjegyek ( [0-9])
\D nem számjegyek ( [^0-9])
\s üres hely ( [\t\n\f\r ])
\S nem szabad tér ( [^\t\n\f\r ])
\w szókarakterek ( [0-9A-Za-z_])
\W nem szókarakterek ( [^0-9A-Za-z_])

ASCII-karakterosztályok

Az alábbi táblázat a jelenleg támogatott ASCII-karakterosztályokat sorolja fel.

ASCII-karakterosztályok Leírás
[[:alnum:]] alfanumerikus ( [0-9A-Za-z])
[[:alpha:]] ábécérend ( [A-Za-z])
[[:ascii:]] ASCII ( [\x00-\x7F])
[[:blank:]] üres ( [\t ])
[[:cntrl:]] vezérlés ( [\x00-\x1F\x7F])
[[:digit:]] számjegyek ( [0-9])
[[:graph:]] grafikus ( [!-~] vagy [A-Za-z0-9!“#$%&’()*+,\-./:;<=>?@[\\\]^_`{|}~])
[[:lower:]] kisbetű ( [a-z])
[[:print:]] nyomtatható ( [ -~] vagy [ [:graph:]])
[[:punct:]] írásjelek ( [!-/:-@[-\``{-~])
[[:space:]] whitespace ( [\t\n\v\f\r ])
[[:upper:]] nagybetű ( [A-Z])
[[:word:]] szókarakterek ( [0-9A-Za-z_])
[[:xdigit:]] hexa számjegy ( [0-9A-Fa-f])

Literális karakterek

  • Betűk
  • Számok
  • Szimbólumok

Metakarakterek

  • * az előző karakter nulla vagy több előfordulásának felel meg
  • ^ egy sor elejére illeszkedik

Csoportosulások

A minta részeinek csoportosítása és rögzítése a következőkkel:

  • Zárójel ( )
  • Zárójelben [ ]
  • Nadrágtartó { }

Zászlók

A kifejezés viselkedésének módosításához használjon jelzőket. Például:

  • i
  • m
  • s
  • c

Ez az implementáció támogatja az RE2 után a reguláris kifejezések POSIX szabványát, és támogatja a hagyományos kifejezések PCRE/PCRE2 formátumát, amely kompatibilis a legtöbb modern reguláris kifejezési motorral és eszközzel. A normál kifejezéseknek különböző ízei vannak, például POSIX, ANSI, Perl és PCRE, amelyek szintaxisa és funkciói eltérőek.

Követelmények

  • Egy SQL-ügyféleszköz, például az Azure Data Studio, az SQL Server Management Studio vagy a Visual Studio Code.
  • Az SQL-szintaxis és -lekérdezések alapszintű ismerete.
  • A reguláris kifejezésszintaxis és -fogalmak alapszintű ismerete.

Gyakran Ismételt Kérdések

Milyen teljesítménybeli hatása van a regex használatának?

A Regex-lekérdezések teljesítménybeli hatással lehetnek a regex minta összetettségétől, a szöveges adatok méretétől és az érintett sorok számától függően. A végrehajtási terv és a statisztikák segítségével figyelheti és optimalizálhatja a regex-lekérdezések teljesítményét.

Ismert problémák, viselkedések és korlátozások

Ezek azok az elemek, amelyek jelenleg nem támogatottak az előzetes verzióban:

  • LOB-adattípusok (varchar(max) vagy nvarchar(max)) a következőhöz: string_expressions
  • A normál kifejezésfüggvények nem támogatottak a memóriaoptimalizált OLTP-táblákban