Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2025 (17.x) (wersja zapoznawcza) Azure SQL Database Azure SQLManaged Instance
SQL Database
w wersji zapoznawczej
usługi Microsoft Fabric
Note
Jako funkcja w wersji zapoznawczej technologia przedstawiona w tym artykule podlega uzupełniających warunków użytkowania dla wersji zapoznawczych platformy Microsoft Azure.
Zwraca pozycję początkową lub końcową pasowanego podciągu w zależności od wartości argumentu return_option
.
REGEXP_INSTR
(
string_expression,
pattern_expression
[, start [, occurrence [, return_option [, flags [, group ] ] ] ] ]
)
Note
Wyrażenia regularne są dostępne w usłudze Azure SQL Managed Instance skonfigurowanym przy użyciu zasad aktualizacji always-up-to-date .
Arguments
string_expression
Wyrażenie ciągu znaków.
Może być stałą, zmienną lub kolumną ciągu znaków.
Typy danych: char, nchar, varcharlub nvarchar.
Note
Funkcje REGEXP_LIKE
, REGEXP_COUNT
i REGEXP_INSTR
obsługują typy LOB (varchar(max) i nvarchar(max)) do 2 MB dla parametru string_expression .
pattern_expression
Wzorzec wyrażenia regularnego do dopasowania. Zazwyczaj literał tekstu.
Typy danych: char, nchar, varcharlub nvarchar. pattern_expression obsługuje maksymalną długość znaków wynoszącą 8000 bajtów.
start
Określa pozycję początkową wyszukiwania w ciągu wyszukiwania. Optional. Typ to int lub bigint.
Numerowanie jest oparte na 1, co oznacza, że pierwszy znak w wyrażeniu jest 1
, a wartość musi być >= 1
. Jeśli wyrażenie początkowe jest mniejsze niż 1
, zwraca błąd. Jeśli wyrażenie początkowe jest większe niż długość string_expression, funkcja zwraca 0
wartość . Wartość domyślna to 1
.
occurrence
Wyrażenie (dodatnia liczba całkowita), które określa, które wystąpienie wyrażenia wzorca w ciągu źródłowym ma być wyszukiwane lub zastępowane. Wartość domyślna to 1
. Wyszukuje pierwszy znak string_expression. W przypadku dodatniej liczby całkowitej n
wyszukuje nth
wystąpienie rozpoczynające się od pierwszego znaku po pierwszym wystąpieniu pattern_expression itd.
return_option
Określa, czy ma być zwracana pozycja początkowa, czy końcowa pasowanego podciągu. Użyj 0
na początku i 1
na końcu. Wartość domyślna to 0
. Zapytanie zwraca błąd dla każdej innej wartości.
flag
Co najmniej jeden znak określający modyfikatory używane do wyszukiwania dopasowań. Typem jest varchar lub znak, z maksymalnie 30 znakami.
Na przykład ims
. Wartość domyślna to c
. Jeśli zostanie podany pusty ciąg (' ')
, będzie on traktowany jako wartość domyślna ('c')
. Podaj c
lub inne wyrażenia znaków. Jeśli flaga zawiera wiele sprzecznych znaków, program SQL Server używa ostatniego znaku.
Jeśli na przykład określisz ic
regex zwraca dopasowanie uwzględniające wielkość liter.
Jeśli wartość zawiera znak inny niż wymienione na Obsługiwane wartości flagi, zapytanie zwraca błąd podobny do następującego przykładu:
Invalid flag provided. '<invalid character>' are not valid flags. Only {c,i,s,m} flags are valid.
Obsługiwane wartości flagi
Flag | Description |
---|---|
i |
Bez uwzględniania wielkości liter (wartość domyślna false ) |
m |
Tryb wielowierszowy: ^ i $ dopasuj wiersz początkowy/końcowy oprócz tekstu rozpoczynającego/końcowego (wartość domyślna false ) |
s |
Dopasuj . \n (ustawienie domyślne false ) |
c |
Uwzględniana wielkość liter (wartość domyślna true ) |
group
Określa, która grupa przechwytywania (subexpression
) pattern_expression określa położenie w string_expression do zwrócenia. Grupa jest fragmentem wzorca ujętego w nawiasy i może być zagnieżdżona. Grupy są numerowane w kolejności, w której ich lewe nawiasy pojawiają się we wzorcu. Wartość jest liczbą całkowitą i musi być >= 0
większa niż liczba grup w pattern_expression. Wartość domyślna to 0
, która wskazuje, że pozycja jest oparta na ciągu zgodnym z całym pattern_expression.
Jeśli wartość jest większa niż liczba grup w pattern_expression, funkcja zwraca wartość 0
.
Return value
Integer.
Examples
Znajdź pozycję pierwszego podciągu zawierającego tylko cyfry w kolumnie PRODUCT_DESCRIPTION
.
SELECT REGEXP_INSTR(PRODUCT_DESCRIPTION, '\d+')
FROM PRODUCTS;
Znajdź pozycję trzeciego wystąpienia litery a
(bez uwzględniania wielkości liter) w kolumnie PRODUCT_NAME
.
SELECT REGEXP_INSTR(PRODUCT_NAME, 'a', 1, 3, 0, 'i')
FROM PRODUCTS;
Znajdź położenie końca pierwszego podciągu rozpoczynającego się od t
i kończy się e
(uwzględniana wielkość liter) w kolumnie PRODUCT_DESCRIPTION
.
SELECT REGEXP_INSTR(PRODUCT_DESCRIPTION, 't.*?e', 1, 1, 1)
FROM PRODUCTS;