2010-09-25 6 views
1

Ce que je voudrais faire supprimer la partie d'une chaîne qui est contenue entre crochets. Par exemple, pouvoir passer de "Hello (World)" à "Hello". J'utilise var input2 = '\([0-9a-zA-z]*\)'; comme expression d'expression et j'utilise des expressions régulières pour correspondre à ce modèle. Est-ce que quelqu'un peut me dire ce que je vais mal? Je dois fuir le "(" et ")" incorrectement.Pourquoi cette expression régulière ne fonctionne pas: ' ([0-9a-zA-z] * )';

+1

Quelle langue nous traitons ici? – epascarello

Répondre

4

A-z doit être A-Z. Si vous voulez être sûr avec ces barres obliques inverses, échapper les barres obliques inverses de sorte que vous obtenez respectivement \\( et \\), bien que je ne vois rien de mal avec les barres obliques inverses.

+1

Ne pensez pas que [A-z] va l'arrêter mathématiquement. Cela correspond à A-Z [\]^_ 'et a-z – justintime

+1

@justintime: Je ne pense pas qu'il voulait dire cela comme une solution. Mais '[A-z]' est évidemment une faute de frappe, et nous serions négligents si nous ne le faisions pas remarquer. –

+0

Oui, c'était une faute de frappe - merci de l'avoir attrapé. – nazbot

0

Est-ce JavaScript? Si oui, vous devez soit les backslashs comme dit @BoltClock, ou utiliser une expression régulière littérale:

var input2 = /\([0-9a-zA-Z]*\)/; 
+0

Est-ce que le downvoter se souciait d'expliquer pourquoi? Je ne peux pas corriger mon erreur si je ne sais pas ce que c'est. :RÉ –

Questions connexes