2009-08-06 4 views
0

Мне нужно регулярное выражение, которое будет соответствовать тексту, заключенному в круглые скобки. Скобки должны быть включены. Вот несколько примеров.C# Регулярное выражение для получения информации в скобках

Строка: "(AB123-16W) DJ2988W61" должны соответствовать: "(AB123-16W)"

Строка: «(6541238 Rev. B, PS B1 & PS B2) 62MJ301-29 Rev. NC " должны соответствовать: "(6541238 Rev. B, PS B1 & PS B2)"

ответ

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

Все переменные результатов будут оцениваться как истинные.

+0

+1 для тестовых случаев. – karlipoppins

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

должен соответствовать элементам в скобках: D

Вы можете не использовать разделители (слэш) на вашем языке! Попробуйте, и если это не сработает, попробуйте.

+0

Вы могли бы хотеть нежадным версию: (.? \ (* \)) , так как жадный вариант с "Testing (123) Тестирование (123)" будет соответствовать "(123) Тестирование (123)" – aquinas

+0

К сожалению, результатов не найдено. – Tarzan

+0

Положительная обратная связь. – Mez