Extension:RegexFunctions
![]() Sürüm durumu: kararlı |
|
---|---|
Uygulama | Ayrıştırıcı işlevi |
Açıklama | Düzenli ifade tabanlı ayrıştırıcı işlevleri |
Yazar(lar) | Ryan Schmidt (Skizzerzmesaj) |
En son sürüm | 2.0.0 (2020-03-18) |
MediaWiki | 1.31+ |
Lisans | Kamu malı |
İndir | Kullanım |
Quarterly downloads | 22 (Ranked 118th) |
Translatewiki.net adresinde mevcutsa, RegexFunctions uzantısını çevirin | |
RegexFunctions uzantısı düzenli ifade tabanlı ayrıştırıcı işlevlerini sağlar.
Kullanım
Şu an itibariyle, bu uzantı üç ayrıştırıcı işlevi tanımlamaktadır: rmatch
, rsplit
ve rreplace
:
#rmatch:
{{#rmatch:string|pattern|then|else}}
- string (gerekli) - İşlevin eşleşme için kullandığı metin.
- pattern (gerekli) - Metin üzerinde kullanılacak düzenli ifade.
- then (isteğe bağlı) - Eşleşme başarılı olursa ne döndürür. $# ve \# yakalanan metni içerir. Bir grubun ardından başka bir sayı gelmesini istiyorsanız ${#}# kullanın.
- else (isteğe bağlı) - Eşleşme başarılı olmazsa ne döndürür. Varsayılan olarak boş bir dize.
#rsplit:
{{#rsplit:string|pattern|piece}}
- string (gerekli) - İşlevin bölüneceği metin.
- pattern (gerekli) - Metin üzerinde kullanılacak düzenli ifade. Metin yakalanmaz.
- piece (isteğe bağlı) - Geri dönecek parça. Varsayılan değer 0'dır (ilk parça). Negatif sayılar, parçaları baştan başlayarak döndürür. Örneğin, -1 son parçadır.
#rreplace:
{{#rreplace:string|pattern|replacement}}
- string (gerekli) - İşlevin yerini alacak metin.
- pattern (gerekli) - Metin üzerinde kullanılacak düzenli ifade.
- replacement (gerekli) - Eşleşen metnin yerini alacak metin. $# ve \# yakalanan metni içerir. Bir grubun ardından başka bir sayı gelmesini istiyorsanız ${#}# kullanın.
string parametresi dışında her parametre ad veya konuma göre belirtilebilir.
Örneğin, {{#rmatch:some string|pattern=^.+$|then=success|else=failure}}
.
Vikinizin içerik dili İngilizce değilse, hem İngilizce hem de çevrilmiş bir ad kullanılabilir.
Ayrıca, her işlev, normal ifadenin davranışını değiştirmenize izin veren aşağıdaki adlandırılmış parametreleri destekler:
- multiline - Boş değilse
^
ve$
, tüm dizenin başlangıcı ve bitişi yerine her satırın başlangıcı ve bitişi ile eşleşir. - caseless - Boş değilse, desen büyük/küçük harfe duyarlı değildir.
- ungreedy - Boş değilse,
*
ve+
açgözlülükle eşleşmezken,*?
ve+?
açgözlülükle eşleşir. - extended - Boş değilse, normal ifade boşluklar ve satır içi yorumlar içerebilir. Daha fazla bilgi için desen yardımı bölümündeki PHP belgelerine bakın.
- dotall - Boş değilse,
.
, yeni satırlar dahil tüm karakterlerle eşleşir. Normalde yeni satırlarla eşleşmez.
Örneğin, {{#rmatch:XxXxX|x+|$0|caseless=1}}
çıkış XxXxX
sonuçlanır çünkü x+
, kasasız değiştirici ayarlandığında hem büyük hem de küçük X eşleşir.
Desen yardımı
Sözdizimini oluşturma konusunda yardım için lütfen genel yardım için [1] ve değiştiricilere genel bakış için [2] okuyun.
Genelde desen üzerinde sınırlayıcılar gerekli değildir ve mümkün olduğunda okunabilirlik için atlanmalıdır, ancak desenden sonra tek harfli değiştiricileri belirtmek istiyorsanız gereklidir. Bu durumda, sınırlayıcıların eğik çizgi olması gerekir (başka bir sınırlayıcı türü desteklenmez).
Kurulum
- Dosyaları indirin ve
extensions/
klasörünüzdekiRegexFunctions
adlı dizine yerleştirin.
Developers and code contributors should install the extension from Git instead, using:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/RegexFunctions - LocalSettings.php dosyanızın altına aşağıdaki kodu ekleyin:
wfLoadExtension( 'RegexFunctions' );
- Yapıldı – Uzantının başarıyla yüklendiğini doğrulamak için vikinizde Special:Version seçeneğine gidin.
Ayrıca bakınız
- ReplaceSet - tek bir metin dizesinde bir dizi yerine geçmeniz gerektiğinde iç içe #replace komutlarını kullanmak için mükemmel bir alternatiftir.
- Regex Fun - daha fazla işlevselliğe sahip ancak sınırlamalar için herhangi bir özelleştirme değişkeni olmayan başka bir düzenli ifade uzantısı.
This extension is included in the following wiki farms/hosts and/or packages: This is not an authoritative list. Some wiki farms/hosts and/or packages may contain this extension even if they are not listed here. Always check with your wiki farms/hosts or bundle to confirm. |