Expresii Regulare și Pattern Matching Modern în Ruby în Ruby

Ghid complet pentru expresii regulare și pattern matching în Ruby 3: operatorul =~, capturi nominale, metoda match, și construcțiile case ... in pentru structuri de date complexe.

Sintaxă
text =~ /regex/; case val in [x, y] then ... in {name:} then ... end

Ruby dispune de un suport nativ de excepție pentru expresii regulare prin clasa Regexp. Începând cu Ruby 3.0, limbajul a adăugat Pattern Matching structural (instrucțiunea case ... in), transformând modul în care descompunem obiecte și hash-uri.

Expresii regulare cu capturi nominale (Named Captures)
text = "Comanda #9842 a fost plasata de utilizatorul ion@dexblog.ro la ora 14:30."

# Regex cu grupuri nominale (?pattern):
pattern = /#(?\d+).*?(?[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})/

if (potrivire = pattern.match(text))
    puts "ID Comandă găsit: #{potrivire[:id_comanda]}"
    puts "Email client: #{potrivire[:email]}"
end

# Scanare pentru toate numerele dintr-un text:
preturi = "Pâine: 6 RON, Lapte: 12 RON, Cafea: 35 RON".scan(/\d+/)
puts "Toate prețurile: #{preturi.inspect}" # ["6", "12", "35"]
Pattern Matching structural modern cu case … in
raspuns_api = { status: 200, corp: { utilizator: "Mihai", puncte: 450 } }

# Destructurare elegantă pe baza structurii datelor:
case raspuns_api
in { status: 200, corp: { utilizator: nume, puncte: punctaj } }
    puts "Autentificat cu succes: #{nume} cu #{punctaj} puncte."
in { status: 404, corp: mesaj }
    puts "Resursa nu a fost găsită: #{mesaj}"
in { status: 500..599 }
    puts "Eroare internă de server!"
else
    puts "Răspuns necunoscut."
end
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Expresii Regulare și Pattern Matching Modern în Ruby

Ai o nelămurire despre utilizarea comenzii Expresii Regulare și Pattern Matching Modern în Ruby sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.