Ruby String contém uma substring

Ruby String contém uma substring
Strings são blocos de construção fundamentais em todas as linguagens de programação. Todo programador deve ter um sólido entendimento de trabalhar com cordas e executar operações complexas.

Uma operação típica ao trabalhar com strings está determinando se uma string contém uma substring específica. Você pode usar esses métodos para localizar e higienizar a contribuição dos usuários, impedindo qualquer código malicioso.

Neste tutorial, mostraremos como determinar se uma string contém uma substring específica.

Ruby inclui? Método

A maneira mais fácil de descobrir se uma substring específica está em outra string é usar? Método interno.

Aqui está um exemplo:

str = '
Informação:

'
se str.incluir?("publicar")
coloca o "método HTTP correto -> post"
outro
coloca o "método HTTP incorreto"
fim

No exemplo acima, temos um programa simples contendo informações de uma entrada de formulário HTML. Verificamos se o formulário contém um método de postagem usando o método de inclusão.

Como o valor de retorno do método é um booleano verdadeiro ou falso se a substring estiver disponível ou não, respectivamente, implementamos uma declaração se ... else para agir de acordo.

A saída de exemplo do script acima é como mostrado:

$ ruby ​​substring.rb
Método HTTP correto -> POST

Se substituirmos os dados do formulário e definirmos o método para obter, podemos chegar ao bloco else como:

str = '
Informação:

'
se str.incluir?("publicar")
coloca o "método HTTP correto -> post"
outro
coloca o "método HTTP incorreto"
fim

Nós executamos o script como:

$ ruby ​​substring.rb
Método HTTP incorreto

Uma desvantagem do incluído? método é sensível ao caso. Isso significa que a postagem e a postagem retornarão um valor falso.

Por exemplo:

str = 'post'
se str.incluir?("publicar")
coloca o "método HTTP correto -> post"
outro
coloca o "método HTTP incorreto"
fim

Se executarmos o exemplo acima, devemos obter uma saída do bloco else como:

$ ruby ​​substring.rb
Método HTTP incorreto

Para superar isso, podemos primeiro converter toda a string em minúsculas ou maiúsculas e depois verificar se a substring está dentro da string principal.

Aqui está um exemplo:

str = 'post'
if (str.incluir?("publicar".upcase)))
coloca o "método HTTP correto -> post"
outro
coloca o "método HTTP incorreto"
fim

Neste exemplo, convertemos a substring em maiúsculas, que correspondem à sequência principal, e verificamos o valor.

$ ruby ​​substring.rb
Método HTTP correto -> POST

Usando regex

Podemos usar o regex para verificar se uma string contém uma substring específica. Ruby retornará nulo se o padrão de expressão regular especificado não estiver dentro da string.

Por exemplo:

str = '
Informação:

'
coloca str = ~ /post /

No exemplo acima, usamos uma expressão regular simples para verificar se a string contém a substring "post".

Se executarmos o script acima, devemos obter uma saída semelhante à abaixo:

$ ruby ​​substring.rb
33

O valor de retorno da expressão regular é o índice inicial em que o caso de correspondência é encontrado. Em nosso exemplo, a string post está começando no índice 33. Podemos verificar como:

str = '…
coloca STR [33… 36]

No exemplo acima, começamos a partir do índice inicial em que a string é encontrada para indexar o comprimento da extensão da substring:

$ ruby ​​substring.rb
publicar

Referência do elemento Ruby String []

Também podemos usar o método de referência de string rubi. Podemos passar uma corda, um valor de índice ou uma expressão regular dentro de um par de colchetes quadrados.

Exemplo de uso:

str = 'post'
coloca o str ['post']
coloca str ['não encontrado']

Se executarmos o exemplo acima, devemos ver uma saída como:

=> POST
=> nil

Se a substring estiver disponível, ele retornará a sequência real; No entanto, ele retornará nulo se não houver substring.

O mesmo caso se aplica a expressões regulares.

str = 'post'
coloca str [/post/]
=> POST

Também podemos usar o método acima para extrair uma substring. Por exemplo, para extrair 10 caracteres após a partida, podemos fazer:

str = 'Post ------ String continua aqui'
coloca str [str = ~ /string /, 9]

O exemplo acima buscará 9 índices após o índice onde a partida está.

Conclusão

Neste guia, você aprendeu a verificar se uma string contém uma substring específica usando a inclusão? método, expressões regulares e referência de elemento de sequência.