2

我的字符串可能用括号括起来也可能不括起来

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

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

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

谢谢

4

3 回答 3

7

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

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

如果您不允许中间有其他括号,您仍然可以这样做:

bool isBracketed = s.LastIndexOf("[") == 0 && s.IndexOf("]") == s.Length - 1;
于 2013-01-01T16:16:54.903 回答
2

用于^模式的开始和模式$的结束。

var isCommandArray = Regex.IsMatch(c, @"^\[.*?\]$")
于 2013-01-01T16:06:46.437 回答
1

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

^\[.*?\]$

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

如果您想在大括号周围允许空格,您可以添加\s

^\s*\[.*?\]\s*$
于 2013-01-01T16:09:16.933 回答