Un'operazione tipica quando si lavora con le stringhe sta determinando se una stringa contiene una sottostringa specifica. È possibile utilizzare questi metodi per individuare e disinfettare gli input dagli utenti, prevenendo così qualsiasi codice dannoso.
In questo tutorial, ti mostreremo come determinare se una stringa contiene una sottostringa specifica.
Ruby include? Metodo
Il modo più semplice per scoprire se una sottostringa specifica è in un'altra stringa è includere? metodo integrato.
Ecco un esempio:
str = 'Nell'esempio sopra, abbiamo un semplice programma contenente informazioni da un input del modulo HTML. Controlliamo se il modulo contiene un metodo post utilizzando il metodo Include.
Poiché il valore di ritorno del metodo è un vero o falso booleano se la sottostringa è disponibile o meno, rispettivamente, implettiamo un'istruzione IF ... else per agire di conseguenza.
L'output di esempio dallo script sopra è mostrato:
$ Ruby Substring.RbSe sostituiamo i dati del modulo e impostiamo il metodo su un GET, possiamo arrivare al blocco altro come:
str = 'Eseguiamo lo script come:
$ Ruby Substring.RbUno svantaggio dell'inclusione? Il metodo è sensibile al caso. Ciò significa che Post e Post restituiranno un valore falso.
Per esempio:
str = 'post'Se eseguiamo l'esempio sopra, dovremmo ottenere un output dal blocco altro come:
$ Ruby Substring.RbPer superare questo, possiamo prima convertire l'intera stringa in minuscolo o maiuscola, quindi verificare se la sottostringa si trova all'interno della stringa principale.
Ecco un esempio:
str = 'post'In questo esempio, convertiamo la sottostringa in maiuscolo, che corrisponde alla stringa principale e controlliamo il valore.
$ Ruby Substring.RbUsando regex
Possiamo usare Regex per verificare se una stringa contiene una sottostringa specifica. Ruby restituirà zero se il modello di espressione regolare specificato non è all'interno della stringa.
Per esempio:
str = 'Nell'esempio sopra, utilizziamo una semplice espressione regolare per verificare se la stringa contiene il "post" di sottostringa.
Se eseguiamo lo script sopra, dovremmo ottenere un output simile a quello sotto:
$ Ruby Substring.RbIl valore di ritorno dell'espressione regolare è l'indice iniziale in cui viene trovato il caso di corrispondenza. Nel nostro esempio, la stringa post parte dall'indice 33. Possiamo verificare come:
str = '..Nell'esempio sopra, iniziamo dall'indice iniziale in cui si trova la stringa indicizzando la lunghezza della sottostringa:
$ Ruby Substring.RbRiferimento elemento stringa ruby []
Possiamo anche usare il metodo di riferimento della stringa Ruby. Possiamo passare una stringa, un valore dell'indice o un'espressione regolare all'interno di una coppia di parentesi quadrate.
Esempio di utilizzo:
str = 'post'Se eseguiamo l'esempio sopra, dovremmo vedere un output come:
=> postSe la sottostringa è disponibile, restituirà la stringa effettiva; Tuttavia, restituirà zero se non vi è alcuna sottostringa.
Lo stesso caso si applica alle espressioni regolari.
str = 'post'Possiamo anche usare il metodo sopra per estrarre una sottostringa. Ad esempio, per estrarre 10 caratteri dopo la partita, possiamo fare:
str = 'post ------ stringa continua qui'L'esempio sopra recupererà 9 indici dopo l'indice in cui è la corrispondenza.
Conclusione
In questa guida, hai imparato come verificare se una stringa contiene una sottostringa specifica usando l'inclusione? Metodo, espressioni regolari e riferimento per elementi stringa.