2009-08-06 10 views
0

J'ai besoin d'une expression régulière qui apparie le texte entre parenthèses. Les parenthèses doivent être incluses. Voici quelques exemples.C# Expression régulière pour obtenir des informations entre parenthèses

chaîne: "(AB123-16W) DJ2988W61" doit correspondre: "(AB123-16W)"

chaîne: « (6541238 Rev. B, PS B1 & PS B2) 62MJ301-29 Rev. NC " doit correspondre: "(6541238 Rev. B, PS B1 & PS B2)"

Répondre

1
var test1 = "(AB123-16W) DJ2988W61"; 
var test2 = "(6541238 Rev. B, PS B1 & PS B2) 62MJ301-29 Rev. NC"; 
var test3 = "(6541238 Rev. B, PS B1 & PS B2)(AB123-16W)"; 

Regex r = new Regex(@"(\([^)]*\))"); 

var result1 = (r.Matches(test1)[0].Groups[1].Value == "(AB123-16W)"); 
var result2 = (r.Matches(test2)[0].Groups[1].Value == "(6541238 Rev. B, PS B1 & PS B2)"); 
var result3 = (r.Matches(test3)[0].Groups[1].Value == "(6541238 Rev. B, PS B1 & PS B2)"); 
var result4 = (r.Matches(test3)[1].Groups[1].Value == "(AB123-16W)"); 

Debugger.Break(); 

Toutes les variables de résultats seront évaluées à true.

+0

+1 pour les cas de test. – karlipoppins

2
/(\(.*?\))/ 

doit correspondre aux éléments entre parenthèses: D

Vous ne pouvez pas avoir à utiliser les délimiteurs (barres obliques) dans ta langue! Essayez avec, et si cela ne fonctionne pas, essayez sans.

+0

Vous voudrez peut-être une version non gourmande: (.? \ (* \)) depuis la version gourmande avec "Test (123) Tests (123)" correspondra à "(123) Tests (123)" – aquinas

+0

Malheureusement, cela n'a renvoyé aucun résultat. – Tarzan

+0

Feedback par rapport à la mise à jour. – Mez

Questions connexes