RegExp
- Dart kursu
- Başlangıç
- Ders 91/116
- 5 dk
RegExp ile düzenli ifadeler öğrenirsin.
RegExp nedir?
RegExp, düzenli ifadeleri (regular expression) Dart'ta temsil eden sınıftır. Bir desenle metin içinde eşleşme arar; örneğin rakamlar, harfler ya da belirli bir kalıp. RegExp(r"\d+") bir veya daha fazla rakamı yakalar. Önündeki r ham dize (raw string) işaretidir; ters bölü kaçış olarak yorumlanmaz.
Deseni test etmek için hasMatch kullanılır; doğru ya da yanlış döner. RegExp(r"\d").hasMatch("a3") sonuçu true. İlk eşleşmeyi almak için firstMatch, tümünü almak için allMatches vardır. Doğrulama, ayrıştırma ve filtreleme için çok güçlüdür.
hasMatch ve firstMatch
hasMatch yalnızca doğru ya da yanlış döner; eşleşmenin nerede olduğunu bilmez. Sana yalnızca "var mı?" sorusunu yanıtlar. Telefon numarası, e-posta ya da posta kodu doğrulamasında idealdir.
Eşleşmenin kendisini istiyorsan firstMatch kullanırsın; bu bir Match nesnesi döner ya da eşleşme yoksa null. Match üzerinden .group(0) tüm eşleşmeyi, .start başlangıç indisini verir. Birden çok eşleşme için allMatches bir yineleyici döndürür ve döngüyle gezilir.
Uygulama Sıra sende: RegExp ile rakam kontrolü
İçinde en az bir rakam olan bir dizeyi RegExp(r"\d") ile test et. "sipariş 42" dizesini hasMatch ile sorgula ve sonuçu print ile yazdır.
Başlangıç kodu
void main() {
// Bir rakam deseni oluştur
// "sipariş 42" üzerinde hasMatch çağır ve yazdır
}Örnek çözüm
void main() {
final desen = RegExp(r"\d");
print(desen.hasMatch("sipariş 42"));
}Beklenen çıktı
true
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 RegExp desenlerini eşleştir
| Kavram | Anlamı |
|---|---|
\d+ |
bir veya daha fazla rakam |
[a-z] |
küçük harf |
^elma |
dize elma ile başlar |
muz$ |
dize muz ile biter |
2 Bir dizede en az bir rakam olduğunu test eden yöntem?
final r = RegExp(r"\d");
final v = r._____(s);- firstMatch
- hasMatch
- allMatches
- stringMatch Doğru cevap
Açıklama: hasMatch true/false döndürür.
3 RegExp deseni
final rakam = ____r"\d+");
final rakam = RegExp(r"\d+");
Açıklama: RegExp sınıfı desen oluşturur.