正则表达式使用c#测试字符串是否包含在[方括号]中

时间:2013-01-01 16:05:29

标签: c# regex

我的字符串可能会或可能不会被括号括起来

string a = "[Hello world]";
string b = "Hello world";

只要字符串包含[],以下正则表达式返回true,但这不是目标:)

var c = "hello[ ]world";
var isCommandArray = Regex.IsMatch(c, @"\[.*?\]"); // returns true

由于

3 个答案:

答案 0 :(得分:5)

如果您允许其他括号位于中间,则不必使用Regex

bool isBracketed = s.StartsWith("[") && s.EndsWith("]");

如果你允许中间的其他括号,你仍然可以这样做:

bool isBracketed = s.LastIndexOf("[") == 0 && s.IndexOf("]") == s.Length - 1;

答案 1 :(得分:2)

使用^开始模式,使用$开始模式结束。

var isCommandArray = Regex.IsMatch(c, @"^\[.*?\]$")

答案 2 :(得分:1)

您需要对正则表达式进行编码,使其与字符串的开头和结尾相匹配。

^\[.*?\]$

^表示字符串的开头,$表示结束。

如果你想在大括号周围留出空格,你可以添加\s

^\s*\[.*?\]\s*$