我的字符串可能用括号括起来也可能不括起来
string a = "[Hello world]";
string b = "Hello world";
只要字符串包含 [],以下正则表达式就会返回 true,但这不是目标 :)
var c = "hello[ ]world";
var isCommandArray = Regex.IsMatch(c, @"\[.*?\]"); // returns true
谢谢
如果您允许其他括号位于中间,则不必使用Regex
:
bool isBracketed = s.StartsWith("[") && s.EndsWith("]");
如果您不允许中间有其他括号,您仍然可以这样做:
bool isBracketed = s.LastIndexOf("[") == 0 && s.IndexOf("]") == s.Length - 1;
用于^
模式的开始和模式$
的结束。
var isCommandArray = Regex.IsMatch(c, @"^\[.*?\]$")
您需要对正则表达式进行编码,使其与字符串的开头和结尾相匹配。
^\[.*?\]$
^
表示字符串的开始,并$
表示结束。
如果您想在大括号周围允许空格,您可以添加\s
:
^\s*\[.*?\]\s*$