2010-03-03 6 views
4
string = 'Hello 1234_ world 4567_ trap 456'; 

Je dois capturer tous les chiffres suivis d'un trait de soulignement. Le code suivant fera l'affaire. Cependant, j'ai testé le code suivant et cela a fonctionné, sauf que le trait de soulignement était également en cours de capture.Expression régulière Javascript

(\d+)_ 

donc j'ai décidé de donner underscore son propre groupe de capture comme celui-ci

(\ d +) (_)

Mais cela n'a pas fonctionné. Je reçois des chiffres avec un trait de soulignement. Je ne veux pas souligner.

+0

Comment utilisez-vous le regex? Quel est le reste du code? –

+0

J'utilise ce site http://regex.larsolavtorvik.com/#js –

Répondre

4

La méthode match renvoie une chaîne contenant les caractères correspondants, qu'ils fassent ou non partie d'un groupe (capture ou non-capture). Le groupe (?=_) est un outil de recherche. Un lookahead est une correspondance de largeur nulle et ne correspond donc à aucun caractère. Il correspond à la chaîne vide, mais seulement si le caractère immédiatement après est un trait de soulignement.

Les groupes ne sont pas vraiment la chose importante ici. Lorsque vous utilisez une correspondance de largeur nulle, le résultat n'inclura aucun caractère supplémentaire.

+0

C'est '/ \ d + (? = _)/G'. Je ne sais pas pourquoi il n'est pas écrit. – Kobi

+0

Kobi: C'était déjà une partie de la question, mais il l'a édité. –

+0

C'est tellement étrange. – Kobi

0

Essayez

var regex = /(\d+?)(_)/ 
Questions connexes