Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: SQL Server 2025 (17.x) Előzetes verzió
az Azure SQL Database
Azure SQL Managed Instance
SQL 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