如何让文本在方括号中包含方括号?

时间:2015-06-22 09:55:42

标签: c# regex square-bracket

我有一个像

这样的字符串
string str = "[COUNT([Weight] > 10)] < 20 AND [COUNT([Height] < 10)] < 25";

我希望得到方括号中的值。如果我使用表达式Regex(@"\[.*?\]")=&gt;它返回

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

但我想得到值

[COUNT([Weight] > 10)] and [COUNT([Height] < 10)]
我可以这样做吗?请帮助我。

谢谢!

3 个答案:

答案 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

答案 1 :(得分:1)

您可以使用此正则表达式。

function myFunction() {
  var spr = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spr.getSheets()[0];
  var column = sheet.getRange("A:A");
  column.setNumberFormat("MMMM"); // MMM for abbreviated month, MM for month number
}

DEMO

@"\[(?:\[[^\[\]]*\]|[^\[\]])*\]" 匹配(?:\[[^\[\]]*\]|[^\[\]])*阻止或任何字符但不包括[..][ ),零次或多次。

答案 2 :(得分:0)

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

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

<强> REGEX DEMO