212 votes

Expression régulière pour obtenir une chaîne entre parenthèses en Javascript

Je suis en train d'écrire une expression régulière qui retourne une chaîne de caractères qui est entre parenthèses. Par exemple: je veux obtenir la chaîne de caractères qui réside entre les chaînes de caractères "(" et ")"

I expect five hundred dollars ($500).

serait de retour

$500

Trouvé Expression Régulière pour obtenir une chaîne de caractères entre deux chaînes de caractères en Javascript

Mais je suis de nouveau avec la regex. Je ne sais pas comment l'utiliser '(', ')' dans regexp

535voto

go-oleg Points 6938

Vous devez créer un ensemble d'échappement (avec \) entre parenthèses (qui correspondent à l'parenthèses) et d'un groupe régulier entre parenthèses que de créer votre capture d'un groupe:

var regExp = /\(([^)]+)\)/;
var matches = regExp.exec("I expect five hundred dollars ($500).");

//matches[1] contains the value between the parentheses
console.log(matches[1]);

Ventilation:

  • \( : correspond à une ouverture de parenthèses
  • ( : commencer la capture de groupe
  • [^)]+: correspondre à un ou plusieurs non ) caractères
  • ) : fin de la capture de groupe
  • \) : match de clôture des parenthèses

Voici une explication visuelle: tinyurl.com/mog7lr3.

35voto

Mr_Green Points 8867

Essayez la manipulation de chaîne:

 var txt = "I expect five hundred dollars ($500). and new brackets ($600)";
var newTxt = txt.split('(');
for (var i = 1; i < newTxt.length; i++) {
    console.log(newTxt[i].split(')')[0]);
}
 

ou regex ( ce qui est un peu lent comparé à ce qui précède )

 var txt = "I expect five hundred dollars ($500). and new brackets ($600)";
var regExp = /\(([^)]+)\)/g;
var matches = txt.match(regExp);
for (var i = 0; i < matches.length; i++) {
    var str = matches[i];
    console.log(str.substring(1, str.length - 1));
}
 

6voto

P0W Points 21239

Pour seulement quelques chiffres après un signe de devise: \(.+\s*\d+\s*\) devrait fonctionner

Ou \(.+\) pour tout ce qui se trouve entre crochets

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X