2009-06-25 8 views

Répondre

4

Vous devez échapper les parenthèses

utilisation:

var regExp:RegExp = new RegExp("\\((.*?)%\\)"); 

par exemple, compte tenu de la chaîne "(-24%)", cette expression rationnelle capture "-24"

modifié mon mauvais. oublié lors de la création de la regex de cette façon, il faut double échappement. fixe

+0

obtenir encore ce retour traceRegExp: (-32%, (- 32%, (- 32 J'ai aussi essayé différentes manières d'exécuter l'expression rationnelle text.match (RegExp); RegExp.exec (texte); pas différence – arno

+0

Le signe de pourcentage doit probablement être lui aussi échappé – Brian

+0

Echapper des caractères ne signifie pas qu'il ne les cherchera pas, cela leur enlève simplement leur signification particulière Par exemple, si ce moteur RegExp supporte le groupement, vous voudrez échapper les parenthèses. S'il retourne déjà un paren dans son match que ce n'est pas un problème d'échappement – Brian

0

Vous allez probablement devoir faire quelque chose avec lookahead, lookbehind si vous avez besoin de trouver ce qu'il y a dans quelque chose avec une regexp.

Vous pouvez également découper les résultats après les avoir obtenus.

+0

Pas dans ce cas. Tout ce que vous avez à faire est de faire correspondre la partie qui vous intéresse dans un groupe de capture et de le récupérer de cette façon. Ce qui est bien, car les regexes JavaScript ne supportent pas lookbehinds. –

+0

Très cool. Je sais que lookahead/lookbehind n'est pas une caractéristique commune. C'est une petite astuce – Brian

Questions connexes