2010-07-19 6 views
1

Je ne suis pas très familier regex et même pas en mesure (peut-être trop fatigué?) D'utiliser cette question Newby stupide:Regex pour problème spécifique

J'ai besoin d'une expression rationnelle, qui permet une combinaison de chiffres, de lettres (majuscules et minuscules) et le trait de soulignement _

MAIS: le début de cette regex doit être fixe et défini dans mon code source ::

ABC_h2u3h4l 
ABCijij4i5oi4j5 
ABCABC 

ici la pièce "ABC" doit toujours être à la position de leader .

Quelqu'un peut-il me donner un indice?

+0

Merci pour vos réponses rapides, vous m'a beaucoup aidé :) Merci encore – poeschlorn

Répondre

1
^ABC[a-zA-Z0-9_]*$ 
+2

je pense que le regex devrait avoir un début '' ^. Sinon, cela ne garantit pas que la chaîne commence par 'ABC'. Cela correspondrait à une chaîne telle que '123ABC'. – sigint

+0

Modifié, merci pour le commentaire. – adamk

3

qui est l'ensemble regex:

^ABC\w+ 
+0

L'ABC doit correspondre au début de la ligne. Cela va correspondre n'importe où. – cape1232

+0

Pas nécessairement (même sans le '^') - par exemple, en Python 're.match()' ancre toujours la correspondance au début de la chaîne. Mais j'ajouterais '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' –

+0

@Tim: il n'est pas clair à partir de la question s'il y a une seule chaîne multiligne donnée et que chaque ligne doit correspondre (ce qui avec mon regex nécessiterait un drapeau 're.M') ou c'est une série de chaîne qui pourrait être associée 're.match' (avec ou sans l'ancre'^'). – SilentGhost

3

Quelque chose comme ça?

^ABC\w+$