Regex pour vérifier si la chaîne est uniquement composée de caractères spéciaux
Shilpi Agrawal
J'ai des chaînes pour lesquelles je dois vérifier si elle est composée de tous les caractères spéciaux de l'expression régulière J'ai essayé quelque chose mais cela ne fonctionne pas comme je veux de l'aide?
str = "@#%^"
regex = /[\?\<\>\'\,\?\[\]\}\{\=\-\)\(\*\&\^\%\$\#\`\~\{\}\@]/
str.match(regex)
Wiktor Stribiżew
Vous pouvez le faire avec
/\A\W*\z/
Le \W*
correspond à tout caractère non-mot du début ( \A
) à la fin ( \z
) de la chaîne.
Voir la démo :
class String
def onlySpecialChars?
!!self.match(/\A\W*\z/)
end
end
puts "@#%^".onlySpecialChars? # true
puts "w@#%^".onlySpecialChars? # false
Si vous avez votre propre jeu de caractères spéciaux, utilisez simplement à la place de \W
. Notez également que vous avez suréchappé votre regex, [?<>',?\[\]}{=)(*&^%$#`~{}@-]
cela suffira.