Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2025 (17.x)
Microsoft Fabric'te
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği SQL veritabanı
Bağımsız değişkenin değerine return_option bağlı olarak eşleşen alt dizenin başlangıç veya bitiş konumunu döndürür.
REGEXP_INSTR
(
string_expression,
pattern_expression [ , start [ , occurrence [ , return_option [ , flags [ , group ] ] ] ] ]
)
Note
Normal ifadeler Azure SQL Yönetilen Örneği'nde SQL Server 2025 veya Always-up-to-dategüncelleştirme ilkesiyle kullanılabilir.
Arguments
string_expression
Karakter dizesinin ifadesi.
Sabit, değişken veya karakter dizesi sütunu olabilir.
Veri türleri: char, nchar, varchar veya nvarchar.
Note
REGEXP_LIKE, REGEXP_COUNTve REGEXP_INSTR işlevleri, string_expression parametresi için 2 MB'a kadar LOB türlerini (varchar(max) ve nvarchar(max)) destekler.
pattern_expression
Eşleşecek normal ifade deseni. Genellikle bir metin değişmez değeridir.
Veri türleri: char, nchar, varchar veya nvarchar. pattern_expression en fazla 8.000 bayt karakter uzunluğunu destekler.
start
Arama dizesi içindeki aramanın başlangıç konumunu belirtir. Optional. Tür int veya bigint şeklindedir.
Numaralandırma 1 tabanlıdır, yani ifadedeki ilk karakter ve 1 değeri olmalıdır >= 1. Başlangıç ifadesi değerinden 1küçükse hata döndürür. Başlangıç ifadesi string_expression uzunluğundan büyükse, işlevi döndürür 0. Varsayılan değer: 1.
occurrence
Desen ifadesinin kaynak dize içinde hangi oluşumunun arandığını veya değiştirildiğini belirten bir ifade (pozitif tamsayı). Varsayılan 1 değeridir.
string_expression ilk karakterinde arar. Pozitif bir tamsayı niçin nth , pattern_expression ilk oluşumunu izleyen ilk karakterle başlayan oluşumu vb. arar.
return_option
Eşleşen alt dizenin başlangıç veya bitiş konumunun döndürülmesini belirtir. Başlangıç ve 0 bitiş için kullanın1. Varsayılan değer şudur: 0. Sorgu, başka bir değer için hata döndürür.
flag
Eşleşmeleri aramak için kullanılan değiştiricileri belirten bir veya daha fazla karakter. Tür, en fazla 30 karakter içeren varchar veya char'tır.
Örneğin, ims. Varsayılan değer: c. Boş bir dize (' ') sağlanırsa, varsayılan değer ('c')olarak değerlendirilir. Veya c diğer karakter ifadelerini sağlayın. Bayrak birden çok çelişkili karakter içeriyorsa, SQL Server son karakteri kullanır.
Örneğin, regex değerini belirtirseniz ic büyük/küçük harfe duyarlı eşleştirme döndürür.
Değer , Desteklenen bayrak değerleri'nde listelenenlerden farklı bir karakter içeriyorsa, sorgu aşağıdaki örneğe benzer bir hata döndürür:
Invalid flag provided. '<invalid character>' are not valid flags. Only {c,i,s,m} flags are valid.
Desteklenen bayrak değerleri
| Flag | Description |
|---|---|
i |
Büyük/küçük harfe duyarlı değil (varsayılan false) |
m |
Çok satırlı mod: ^ ve $ başlangıç/bitiş metnine ek olarak başlangıç/bitiş satırını eşleştir (varsayılan false) |
s |
Eşleşmeye . izin ver \n (varsayılan false) |
c |
Büyük/küçük harfe duyarlı (varsayılan true) |
group
Bir subexpression hangi yakalama grubunun () döndürülecek string_expression konumunu belirlediğini belirtir. Grup, parantez içine alınmış bir desen parçasıdır ve iç içe yerleştirilebilir. Gruplar, sol parantezlerinin düzende göründüğü sırayla numaralandırılır. Değer bir tamsayıdır ve >= 0olmalıdır ve pattern_expression grup sayısından büyük olmamalıdır. Varsayılan değer, 0konumun tüm pattern_expression eşleşen dizeyi temel aldığına işaret eder.
Değer pattern_expression'daki grup sayısından büyükse işlevi döndürür 0.
Dönüş değeri
Integer.
Examples
Yalnızca sütundaki basamakları içeren ilk alt dizenin PRODUCT_DESCRIPTION konumunu bulun.
SELECT REGEXP_INSTR(PRODUCT_DESCRIPTION, '\d+')
FROM PRODUCTS;
Harfin a (büyük/küçük harfe duyarsız) üçüncü oluşumunun sütundaki PRODUCT_NAME konumunu bulun.
SELECT REGEXP_INSTR(PRODUCT_NAME, 'a', 1, 3, 0, 'i')
FROM PRODUCTS;
sütunda ile başlayıp t (büyük/küçük harfe duyarlı) ile e biten ilk alt dizenin sonunun PRODUCT_DESCRIPTION konumunu bulun.
SELECT REGEXP_INSTR(PRODUCT_DESCRIPTION, 't.*?e', 1, 1, 1)
FROM PRODUCTS;
İlgili içerik
- normal ifadeleri
- Normal ifade işlevleri (Transact-SQL)