Comment vérifier si une chaîne contient un caractère spécial dans ruby. Si j'obtiens une expression régulière aussi c'est bien.Comment vérifier la chaîne contient un caractère spécial dans ruby
S'il vous plaît laissez-moi savoir
Comment vérifier si une chaîne contient un caractère spécial dans ruby. Si j'obtiens une expression régulière aussi c'est bien.Comment vérifier la chaîne contient un caractère spécial dans ruby
S'il vous plaît laissez-moi savoir
special = "?<>',?[]}{=-)(*&^%$#`~{}"
regex = /[#{special.gsub(/./){|char| "\\#{char}"}}]/
Vous pouvez ensuite utiliser l'expression rationnelle pour tester si une chaîne contient le caractère spécial:
if some_string =~ regex
Cela semble un peu compliqué: ce qui se passe dans ce bit
special.gsub(/./){|char| "\\#{char}"
est de tourner ceci
"?<>',?[]}{=-)(*&^%$#`~{}"
dans ce:
"\\?\\<\\>\\'\\,\\?\\[\\]\\}\\{\\=\\-\\)\\(\\*\\&\\^\\%\\$\\#\\`\\~\\{\\}"
Ce qui est tout caractère spécial, se sont échappés avec un \
(qui est lui-même se sont échappés dans la chaîne, à savoir \\
pas \
). Il est ensuite utilisé pour construire un masque comme celui-ci:
/[<every character in special, escaped>]/
Utilisez str.include?
.
Renvoie true
si str
contient la chaîne ou le caractère donné.
"hello".include? "lo" #=> true
"hello".include? "ol" #=> false
"hello".include? ?h #=> true
"foobar".include?('a')
# => true
Pourquoi ne pas utiliser inverse de [:alnum:]
posix.
Ici [:alnum:]
inclut tous 0-9
, a-z
, A-Z
.
En savoir plus here.
"Hel @ lo" .index (/ [^ [: alnum:]] /) Ceci renverra zéro si vous n'avez aucun caractère spécial dans votre chaîne et retournera l'index de votre premier caractère spécial sinon – Akshat
"[email protected]".index(/[^[:alnum:]]/)
Cela renverra nil
au cas où vous n'avez pas un caractère spécial et donc eaiest façon de penser.
Que diriez-vous de cette commande dans Ruby 2.0.0 et au-dessus?
def check_for_a_special_charachter(string)
/\W/ === string
end
Par conséquent, avec:
!"[email protected]"[/\W/].nil? => True
!"Hello"[/\W/].nil? => False
Quels caractères considérez-vous 'spécial'? – Ant
En outre, vous devez accepter les réponses à vos questions si vous les avez trouvées utiles (voir la section correspondante) et utiliser également les upvotes. Cela vous aidera à obtenir plus de réponses – Rishabh
Ce sont tous des caractères spéciaux? <> ',? []} {= -) (* & ^% $ # '~ {} –