Ricerca e sostituzione
gsub, sub, match
Ricerca e sostituzione è una lezione Ruby Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Ruby Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Ruby Academy include 4 lezioni in totale.
Ricerca di una sottostringa
Il metodo index restituisce la posizione della prima corrispondenza oppure nil se non ne trova. include? restituisce true o false.
text = "hello world"
puts text.index("world")
puts text.include?("world")Sostituzione della prima corrispondenza con sub
sub sostituisce solo la prima occorrenza di un pattern con un nuovo valore.
text = "cat cat cat"
puts text.sub("cat", "dog")Sostituzione di tutte le corrispondenze con gsub
gsub significa sostituzione globale. Sostituisce ogni occorrenza.
text = "cat cat cat"
puts text.gsub("cat", "dog")Uso delle espressioni regolari
I pattern racchiusi tra barre, come /.../, sono espressioni regolari. /\d/ corrisponde a una cifra. gsub e sub accettano pattern regex.
text = "a1b2c3"
puts text.gsub(/\d/, "*")Corrispondenza con match?
match? restituisce true se una regex corrisponde a una parte qualsiasi della stringa. È un metodo rapido e chiaro per le verifiche.
email = "ada@ruby.org"
puts email.match?(/@/)
puts "no at sign".match?(/@/)Acquisizione con match
match restituisce un oggetto MatchData. L'indice [0] rappresenta l'intera corrispondenza; le parentesi creano gruppi di cattura accessibili tramite [1], [2] e così via.
data = "2024-05-30"
m = data.match(/(\d+)-(\d+)-(\d+)/)
puts m[1]
puts m[2]scan per tutte le corrispondenze
scan restituisce un array contenente tutte le corrispondenze nella stringa. È perfetto per estrarre tutti i numeri o le parole.
text = "phone 555 and 777"
puts text.scan(/\d+/).inspectAncoraggi
Gli ancoraggi vincolano una corrispondenza a una posizione. ^ indica l'inizio della riga, mentre $ indica la fine. \A e \z vincolano la corrispondenza ai limiti dell'intera stringa.
puts "hello".match?(/^hel/)
puts "hello".match?(/llo$/)
puts "hello".match?(/^world/)Classi di caratteri
Le parentesi quadre definiscono un insieme di caratteri consentiti. [aeiou] corrisponde a qualsiasi vocale. [a-z] corrisponde a qualsiasi lettera minuscola.
text = "Ruby"
puts text.gsub(/[aeiou]/i, "_")Blocchi in gsub
Passi un blocco a gsub per trasformare dinamicamente ogni corrispondenza. Il testo corrispondente viene passato come argomento del blocco.
text = "one two"
result = text.gsub(/\w+/) { |w| w.upcase }
puts resultRicerca senza distinzione tra maiuscole e minuscole
Il flag i dopo una regex fa sì che non venga fatta distinzione tra maiuscole e minuscole.
text = "Hello HELLO hello"
puts text.gsub(/hello/i, "hi")Controllo rapido
Verifichi le Sue conoscenze sulla ricerca e sostituzione.
Riepilogo
Ora sa cercare e sostituire il testo:
index,include?,match?per cercaresub(la prima) egsub(tutte) per sostituire- pattern regex, ancoraggi e classi di caratteri
scanper estrarre tutte le corrispondenze e blocchi per la sostituzione dinamica
Avanti: suddivisione e unione delle stringhe.
puts "a,b,c".gsub(",", " | ")Domande Frequenti
La lezione «Ricerca e sostituzione» è gratuita?
Sì — il testo completo di «Ricerca e sostituzione» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Ruby Academy, passa a CoddyKit PRO. Il corso Ruby Academy include 4 lezioni in totale.
Cosa imparerò in «Ricerca e sostituzione»?
gsub, sub, match Eserciti Ruby Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Ruby Academy?
Non è richiesta alcuna esperienza precedente. Ruby Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Ricerca e sostituzione»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Ruby Academy?
Sì. Ogni lezione Ruby Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Basi e metodi delle stringhe
- Interpolazione e formattazione
- Ricerca e sostituzione
- Divisione e concatenazione