2009-12-24 5 views
6

Je veux un modèle regex pour vérifier que la chaîne ne contient aucun chiffre. Je code un système hospitalier et je souhaite que l'utilisateur saisisse le nom du patient. Bien sûr, le nom ne doit contenir aucun chiffre, comment puis-je le faire avec Regex?Aucun chiffre Java Regex Pattern

+0

À moins, bien sûr , il est légal d'avoir un nom qui inclut des chiffres. J'ai vu des noms étranges au fil des ans. – jball

+2

http://xkcd.com/327/ – jball

+1

jball: SQL ne concerne pas cette question. Aussi je pense que vérifier juste pour les chiffres avec regex est un peu exagéré, certainement si vous attendez une certaine forme pour le nom alors ça va, mais je suis prêt à parier que l'utilisation de l'une des méthodes d'aide dans la classe 'Character' est plus rapide que toute regex. – Esko

Répondre

18

\D est un non-chiffres, et donc alors \D* est un nombre de non-chiffres dans une rangée. Donc, votre chaîne entière devrait correspondre à \D*.

+2

Cette regex convient si vous utilisez la méthode 'matches()'. Si vous utilisez 'find()' vous obtiendrez toujours une correspondance, des chiffres ou non. Si pour une raison quelconque vous deviez utiliser 'find()', vous auriez besoin d'ancrer l'expression régulière: '^ \ D * $' –

2

Essayez: \ D

Voir la JavaDoc pour Pattern

0

noms bien souvent alphabétique, donc ce sera bon: [a-b,A-Z, ,-]+

EDIT: [a-zA-Z- ',]+

+2

qu'en est-il des noms qui incluent une apostrophe? – jball

+2

Pourquoi avez-vous toutes ces virgules? Tout ce qu'ils font est de faire correspondre une virgule littérale dans la chaîne cible. Et ce qui est avec la gamme 'a-b'? N'est-ce pas supposé être 'a-z'? –

+0

@Alan, typo corrigé. – fastcodejava