Comment vérifier si seulement choisi de caractères dans une chaîne de caractères?
Quelle est la meilleure et la plus simple pour vérifier si une chaîne contient uniquement les caractères suivants:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_
Je veux comme un exemple de pseudo-code:
//If String contains other characters
else
//if string contains only those letters
S'il vous plaît et merci 🙂
Pourquoi tout le monde suggèrent regexes? C'est lent!
Quel est votre profiler dire?
Quel est votre profiler dire?
OriginalL'auteur Joseph | 2010-12-13
Vous devez vous connecter pour publier un commentaire.
À l'exception d'un cas: chaîne vide ne contient pas répertoriés caractères, de sorte qu'il devrait être
+
au lieu de*
dans le modèle.gertas: Vous avez raison
Andrew: je n'étais pas sûr si \w(ord) de la classe de caractères correspondent UNIQUEMENT avec ce jeu de caractères
Il vous manque une parenthèse fermante.
OriginalL'auteur Pablo Lalloni
Pour cette classe particulière de la Chaîne de l'utilisation de l'expression "\w+".
Noter que j'utilise le Modèle d'objet pour compiler les regex une fois de sorte qu'il n'a jamais à être compilé, ce qui peut être agréable si vous faites cette vérification dans un terrain ou dans une boucle. Comme par le java docs...
p
statique de la finale.Modèle ne fonctionne pas comme ça. Vous auriez besoin de quelque chose comme Matcher m = p.de correspondance( s ); si ( m.matches()){} else{};
dans mon non-scientifique de l'essai, ce fut de loin le plus rapide, et j'ai utilisé le patron de Pablo de répondre à la place de \\w+
Désolé, fixe mon code. si l'expression régulière \\w+ est identique à [a-zA-Z0-9_]+ mais c'est un point mineur.
OriginalL'auteur Andrew White
Utiliser une expression régulière, comme celle-ci:
http://regexlib.com/REDetails.aspx?regexp_id=1014
OriginalL'auteur Robert Harvey
Mon tour:
Au-dessus de recherches pour unique ne correspond pas ou chaîne vide.
Et selon JavaDoc pour Modèle:
OriginalL'auteur gertas