lxRegex; hesaplayıcının düzenli ifade işlevlerinin kullandığı durumlu arka uç olan TXLSRegex'i açığa çıkarır; sıradan çalışma kitabı çağıranları bağlamsal formül değerlendirmesi sayfasında anlatılan formül API'lerini kullanabilir
Arka uç; UTF modlu, otomatik bütçe callout'lu ve JIT'siz paketlenmiş PCRE2 10.49 16 bit derlemesini kullanır; Delphi ve C++Builder Windows hedefleri ile desteklenen FPC Linux x64 ya da macOS ARM64 hedefleri için statik nesnelerle gelir; desteklenmeyen arka uç hedefleri xrsUnavailable bildirir
Her örnek; derlenmiş desenine, tahsisçisine ve eşleşme bağlamlarına sahiptir; her eşzamanlı işlem için ayrı bir örnek oluşturun ve bütçe geri çağırısının sahibini örnek serbest bırakılana dek canlı tutun
| Genel bildirim | Sözleşme |
|---|---|
TXLSRegex.Create(ABudget: TXLSRegexBudget) | Arka uç bağlamlarını ayırır ve isteğe bağlı geri çağırıyı tutar; çağıran bütçesi olmasın diye nil geçirin, sonra işlem sonuçlarını ve Status değerini inceleyin |
TXLSRegex.Destroy | Derlenmiş deseni, eşleşme verisini ve bağlamları serbest bırakır; çağıranlar normalde finally bloğunda Free çağırır |
TXLSRegex.Compile(Pattern, IgnoreCase): Boolean | UTF-16 bir deseni derler ve yakalama deposunu hazırlar, önceki deseni değiştirir; IgnoreCase PCRE2 büyük/küçük harfe duyarsız eşleştirmeyi etkinleştirir, False eşleştirmeyi büyük/küçük harfe duyarlı bırakır |
TXLSRegex.Match(Text, Offset, NonemptyAtStart, out Offsets): Boolean | Başarılı bir derleme ister, sıfır tabanlı UTF-16 ofsetinden arar ve koparılmış yakalama ofsetleri döndürür; NonemptyAtStart=True, tam o ofsette çapalı, boş olmayan bir eşleşme ister; bu, boş bir eşleşmenin üzerinden ilerlemeyi destekler |
TXLSRegex.Replace(Text, Replacement, Occurrence, out Value): Boolean | Başarılı bir derleme ister ve numaralı ile adlandırılmış yakalama atıfları dahil PCRE2 değiştirme söz dizimini kullanır; sıfır tüm eşleşmeleri seçer, pozitif değer baştan sayılan 1 tabanlı oluşumu seçer, negatif değer ise sondan sayar |
TXLSRegex.Check(AWork, AExtraBytes): Boolean | Bütçe geri çağırısını; güncel iş artışı, yerleşik arka uç baytları artı AdditionalBytes ve önerilen ek baytlarla çağırır; negatif bayt muhasebesi, tamsayı taşması ya da kilitlenmiş sonlu bir durum False döndürür |
TXLSRegex.Status: TXLSRegexStatus | Son işlem ya da sonlu bütçe/arka uç durumu için salt okunur durum; bir işlem False döndürdükten sonra eksik eşleşmeyi başarısızlıktan ayırmak için kullanın |
TXLSRegex.CaptureCount: Cardinal | En son derlenen deseni bildirdiği, tüm eşleşme yuvası hariç açık yakalama gruplarının salt okunur sayısı; Compile başarılı olduktan sonra kullanın |
TXLSRegex.AdditionalBytes: Int64 | Her bütçe denetimine katılması gereken çağıranın sahibi olduğu geçici tamponlar için oku/yaz muhasebe; varsayılanı sıfırdır ve kendisi bellek ayırmaz |
TXLSRegexOffsets, yuva başına iki öğeli bir NativeUInt dinamik dizisidir; sıfır numaralı yuva tüm eşleşmeyi içerir, ardından bildirim sırasıyla açık yakalama grupları gelir
Her çift, Delphi'nin 1 tabanlı dize indekslerinden ya da Unicode skaler konumlarından farklı olarak, UTF-16 kod birimleriyle ölçülen sıfır tabanlı başlangıç ve dışlayıcı bitiştir; atanmamış isteğe bağlı bir yakalama her iki uç için High(NativeUInt) kullanır
Match her denemeden önce çıktı dizisini temizler; Replace başlamadan önce çıktısını temizler ve seçili oluşum olmadan başarılı bir değiştirme, özgün metni xrsOk ile döndürür
Değiştirme atıfları $1 ve ${name} gibi PCRE2'nin dolar gösterimini kullanır; atanmamış bir katılımcı yakalama boş dize katkılar, geçersiz bir değiştirme atfı ise xrsInvalidReplacement bildirir
Eşleştirmeden ya da değiştirmeden önce Compile'ı başarıyla çağırın; hazırlanmış deseni olmayan bir çağrı False döndürür ve uydurma bir desen hata durumu üretmez
TXLSRegexBudget = function(AWork, ABytes: Int64): Boolean of object; biriktirilecek iş artışını ve çağıranın sınırıyla karşılaştırılacak güncel bayt tahminini alır; ABytes bir tahsis deltası değildir
Denetimler; desen hazırlığı, arka uç tahsisleri, eşleşme callout'ları, sonuç ofseti ayırması ve değiştirme sırasında gerçekleşir; çağıran, süreç genelinde değiştirilebilir bir bütçeye güvenmek yerine iptal ve kota ilkesini sağlar
Geri çağırıdan False döndürmek ya da istisna fırlatmak işlemi xrsAborted ile durdurur; geri çağırı istisnaları yerel arka uçtan dışarı sızmaz
xrsResourceLimit, xrsAborted ve xrsUnavailable o örnek için sonludur; bu koşullardan sonra yeniden denemek için başka bir örnek oluşturun; geçersiz desen ya da metin hataları o sonlu kilidi dayatmaz
TXLSRegexStatus değeri | Anlam |
|---|---|
xrsOk | Arka uç işlemi başarıyla tamamlandı |
xrsNoMatch | Güncel eşleşme araması eşleşme bulamadı |
xrsInvalidPattern | Desen derlenemedi; geçersiz desen kodlaması dahildir |
xrsInvalidReplacement | Değiştirme ifadesi reddedildi ya da bir arka uç hatası açık durum eşlemelerinin dışında kaldı |
xrsInvalidText | Eşleştirme ya da değiştirme, açıkça sınıflandırılmış bir UTF-16 girdi ya da karakter sınırı hatasıyla karşılaştı |
xrsResourceLimit | Bir arka uç tahsisi, iç eşleştirme sınırı ya da bayt muhasebesi sınırı tamamlamayı engelledi |
xrsAborted | Bütçe geri çağırısı işlemi durdurdu, geri çağırısı istisna fırlattı ya da yerel bir callout eşleştirmeyi durdurdu |
xrsUnavailable | Hedefte desteklenen paketlenmiş statik arka uç yok |
Hesaplayıcı bu arka uç durumlarını kendi formül hatalarına ve değerlendirme tanılamalarına eşler; bu doğrudan arka uç API'leri Excel hata varyantları döndürmez