Expression régulière-Nombre entre parenthèses

Résolu
scriptiz Messages postés 1424 Date d'inscription   Statut Membre Dernière intervention   -  
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à tous,

Voilà bien longtemps que je n'ai plus touché aux expressions régulières, et bien que les bases ne me posent pas de soucis je rencontre un problème avec la mienne :'(

Donc si quelqu'un pouvait m'aider?

En gros j'ai le texte suivant : Mon texte cool(3)

Et j'aimerais récupérer le 3 entre les parenthèses, qui peut être un nombre entre 0 et 65535.

Donc j'ai cette expression : ^.+\(([0-9]+)\).*$
Qui pour moi veut dire : qui commence par quelque chose, jusqu'à rencontrer une parenthèse, puis des nombres, puis une parenthèse, puis éventuellement quelque chose avant la fin.

Ca fonctionne bien, mais même trop bien, en ce sens que je récupère plein d'autres trucs pour autant qu'il y ait des nombres dedans, hors je ne voudrais que les "phrases" qui commencent par quelques mots, puis qui contiennent un nombre entre parenthèses.

Donc si quelqu'un pouvait m'aider pour qu'il tienne compte des parenthèses ce serait sympa merci d'avance :)




"The most successful method of programming is to begin a program as simply as possible, test it, and then add to the program until it performs the required job." -- PDP8 handbook, Pg 9-64

2 réponses

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 429
 
Salut,

Avec quel langage ?
0
scriptiz Messages postés 1424 Date d'inscription   Statut Membre Dernière intervention   425
 
Celui que tu veux, les expressions régulières étant communes à tous les langages :P

Mais j'utilise du JavaScript dans le cadre de cette expression régulière :
var regex = new RegExp('^.+\(([0-9]+)\).*$');
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 429
 
les expressions régulières étant communes à tous les langages :P
Oui et non d'où ma question ;-\

Par exemple le "\d" n'est pas commun à tous les langages.
Les shells Unix/Linux ne le comprennent pas, sed et awk non plus ;-(
0
scriptiz Messages postés 1424 Date d'inscription   Statut Membre Dernière intervention   425
 
En effet :) Sinon une idée de comment mon expression match avec des chaînes qui n'ont aucunes parenthèses? :)
Au fait j'avais oublié de le dire mais j'ai oublié le \d pour [0-9] car il récupérais le d ^^.

Je me demande si en JS il ne faut pas faire du double échapement?
0
scriptiz Messages postés 1424 Date d'inscription   Statut Membre Dernière intervention   425
 
C'est bon j'ai réglé le problème en n'utilisant pas la classe RegExp mais bien en passant directement l'expression régulière dans une variable :

var regex = /^.+\(([0-9]+)\).*$/;


Merci quand même
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 429
 
De rien, mais j'ai rien fait ;-))


Pffffffffffffffffffffffffffffff chui crevé du coup ;-D
0