2015-06-22 177 views
-1

我有这样如何获取文本在方括号中包含方括号?

string str = "[COUNT([Weight] > 10)] < 20 AND [COUNT([Height] < 10)] < 25"; 

一个字符串,我想在方括号中值。如果我用正则表达式表达(@"\[.*?\]")=>返回

[COUNT([Weight] and [COUNT([Height] 

,但我想要得到的值

[COUNT([Weight] > 10)] and [COUNT([Height] < 10)] 

我能做到这一点?请帮助我。

谢谢!

+0

'@ “\ [* \]”'... –

回答

0

你可以试试这个正则表达式:

var pattern = @"\[.*\]"; 

REGEX DEMO

1

你可以使用这个正则表达式。

@"\[(?:\[[^\[\]]*\]|[^\[\]])*\]" 

DEMO

(?:\[[^\[\]]*\]|[^\[\]])*匹配[..]块或任何字符但不[]),零个或更多次。

+0

谢谢您的回答。它解决了我的问题。 –

+0

接受一个可以帮助你很多的答案。 –

3

没有正则表达式呢?

string str = "[COUNT([Weight] > 10] < 20"; 
var start = str.IndexOf('['); 
var end = str.LastIndexOf(']'); 
Console.WriteLine(str.Substring(start, end - start + 1)); 

enter image description here

+2

我喜欢IndexOf,没有Regex! +1 –

+0

在这种情况下,您的解决方案做得很好。但是我有一个字符串str =“[COUNT([Weight]> 10 AND [Weight]> 5)] <10”。我想获得值[COUNT([Weight]> 10 AND [Weight]> 5)] –