2009-07-24 8 views

Répondre

7
CONTEXT_(84|5) = 
+0

Ceci est parfaitement correct compte tenu de la question, mais probablement pas ce que l'OP réellement prévu – Draemon

+2

Je pense que vous voulez dire CONTEXT_ (84 | 5). Votre correspondance correspond à CONTEXT_8, CONTEXT_4, CONTEXT_5 et CONTEXT_ |, mais pas à CONTEXT_84. En outre, il devrait y avoir un espace ou \ s * ou quelque chose avant le '=' – DrAl

+0

-1, incorrect regex pour le problème, comme indiqué par un autre commentaire. –

3

cela dépend de votre langue cible, mais la principale différence entre les deux est le nombre, donc vous pouvez le faire pour obtenir 'CONTEXT_' avec au moins un nombre suivi d'un espace et d'un '=':

CONTEXT_[0-9]+ = 

ou cela, pour obtenir 'CONTEXT_' avec min d'un, maximum de deux nombres, suivi d'un espace et un '=':

CONTEXT_[0-9]{1,2} = 
+0

Bien que je puisse comprendre la dernière remarque, je pense que vous devriez au moins souligner qu'elle correspond à tout - de peur qu'elle ne soit prise pour une suggestion sérieuse. – Draemon

+0

@Demon, bon point, bien pris. J'ai édité le message pour supprimer la réponse flip. – akf

+0

Votre dernier exemple est manquant le = –

1

CONTEXT_ [0-9] + = *

+0

:) pas assez rapide –

8

Essayez :

CONTEXT_\d{1,2} = 

Ce qui signifie:

CONTEXT_\d{1,2} 

match le caractère s « CONTEXT_ » littéralement «CONTEXT_» match un seul chiffre 0..9 «\d{1,2}» entre un et 2 fois, autant de fois que possible, redonnant au besoin (gourmand) «{1,2}»

Créé avec RegexBuddy

+0

+1 (en supposant que c'est ce que l'OP avait l'intention). Aussi RegexBuddy tente de faire une explication lisible par l'homme de l'expression régulière? C'est plutôt soigné, je vais devoir le regarder. – Falaina

+0

Ouais - l'explication est exportée à partir de la fenêtre "Créer" de RegexBuddy - Je l'ai trouvé très utile quand j'apprenais regex – crono

0
CONTEXT_[\d]+ = 
+2

Pas besoin de la classe de caractères (le []) lors de la correspondance \ d. – Daniel

+0

Ah, c'est vrai, merci! – mafu

1

Votre question contient déjà la réponse: vous demandez

comment faire correspondre CONTEXT_84 =ouCONTEXT_5 =?

qui est déjà tout ce qu'il faut, la seule chose qui manque est comment dire ou dans Regexp, et c'est |.

Ainsi, votre solution est

CONTEXT_84 =|CONTEXT_5 = 

Vous pouvez raccourcir ce en tirant les parties communes:

CONTEXT_(84|5) = 

Et vous avez terminé!

Questions connexes