我想匹配 [ 和 ] 之间的任何字符串。以下代码工作正常,但我想输出没有这个符号 []
我的代码:
string strValue = "{test}dfdgf[sms]";// i want to sms
private void Form1_Load(object sender, EventArgs e)
{
Match mtch = Regex.Match(strValue, @"\[((\s*?.*?)*?)\]");
if (mtch.Success)
{
MessageBox.Show(mtch.Value);
}
}
最佳答案
您需要使用 Match.Groups 属性。由于您已经在使用括号,因此您可以获得所需的组
MessageBox.Show(mtch.Groups[1].Value);
Groups[0] 将包含带有 [ 和 ] 的整个字符串。
另外,我认为您的正则表达式可以简化
\[((\s*?.*?)*?)\]
应该相当于
\[(.*?)\]
因为 .* 将匹配任何内容,包括空格,这是\s 涵盖的内容。
关于c# - 正则表达式匹配 [ 和 ] 之间的任何字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3642285/