2009-08-06 9 views
0

Ich brauche einen regulären Ausdruck, der den in Klammern eingeschlossenen Text abgleicht. Die Klammern sollten enthalten sein. Hier sind einige Beispiele.C# Regulärer Ausdruck, um Informationen in Klammern zu erhalten

String: "(AB123-16W) DJ2988W61" sollten übereinstimmen: "(AB123-16W)"

String: „(6541238 Rev. B, PS B1 & PS B2) 62MJ301-29 Rev. NC " sollten übereinstimmen: "(6541238 Rev. B, PS B1 & PS B2)"

Antwort

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(); 

Alle Ergebnisvariablen werden als wahr ausgewertet.

+0

+1 für Testfälle. – karlipoppins

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

Sollte die Elemente in Klammern entsprechen: D

Sie können nicht die Trennzeichen verwenden müssen (slashes) in deiner Sprache! Versuchen Sie es mit, und wenn das nicht funktioniert, versuchen Sie ohne.

+0

Sie könnten eine nicht gierige Version wollen: (.? \ (* \)) da die gierige Version mit "Testen (123) Prüfung (123)" wird passen "(123) Prüfung (123)" – aquinas

+0

Leider hat das keine Übereinstimmungen zurückgegeben. – Tarzan

+0

Upted mit Rückmeldung. – Mez