CodeBlanks Logo Icon CodeBlanks

RegExp

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

main.dart
void main() {
  // Bir rakam deseni oluştur
  // "sipariş 42" üzerinde hasMatch çağır ve yazdır
}

Örnek çözüm

main.dart
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?

main.dart
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

Soru
final rakam = ____r"\d+");
Cevap
final rakam = RegExp(r"\d+");

Açıklama: RegExp sınıfı desen oluşturur.

Başlangıç bölümündeki tüm dersler