2015-06-22 221 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)] –