La stringa ruby ​​contiene una sottostringa

La stringa ruby ​​contiene una sottostringa
Le stringhe sono elementi fondamentali in tutti i linguaggi di programmazione. Ogni programmatore dovrebbe avere una solida comprensione del lavoro con le stringhe ed eseguire operazioni complesse su di essi.

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 = '
Informazioni:

'
Se str.includere?("inviare")
mette "Metodo HTTP corretto -> POST"
altro
mette "Metodo HTTP errato"
FINE

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.Rb
Metodo HTTP corretto -> POST

Se sostituiamo i dati del modulo e impostiamo il metodo su un GET, possiamo arrivare al blocco altro come:

str = '
Informazioni:

'
Se str.includere?("inviare")
mette "Metodo HTTP corretto -> POST"
altro
mette "Metodo HTTP errato"
FINE

Eseguiamo lo script come:

$ Ruby Substring.Rb
Metodo HTTP errato

Uno svantaggio dell'inclusione? Il metodo è sensibile al caso. Ciò significa che Post e Post restituiranno un valore falso.

Per esempio:

str = 'post'
Se str.includere?("inviare")
mette "Metodo HTTP corretto -> POST"
altro
mette "Metodo HTTP errato"
FINE

Se eseguiamo l'esempio sopra, dovremmo ottenere un output dal blocco altro come:

$ Ruby Substring.Rb
Metodo HTTP errato

Per 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'
Se (str.includere?("inviare".upcase))
mette "Metodo HTTP corretto -> POST"
altro
mette "Metodo HTTP errato"
FINE

In questo esempio, convertiamo la sottostringa in maiuscolo, che corrisponde alla stringa principale e controlliamo il valore.

$ Ruby Substring.Rb
Metodo HTTP corretto -> POST

Usando 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 = '
Informazioni:

'
mette str = ~ /post /

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.Rb
33

Il 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 = '..
mette STR [33… 36]

Nell'esempio sopra, iniziamo dall'indice iniziale in cui si trova la stringa indicizzando la lunghezza della sottostringa:

$ Ruby Substring.Rb
inviare

Riferimento 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'
mette str ['post']
mette str ['not-found']

Se eseguiamo l'esempio sopra, dovremmo vedere un output come:

=> post
=> zero

Se 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'
mette str [/post/]
=> 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'
mette str [str = ~ /string /, 9]

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.