2010-09-04 120 views
2

我想匹配[和]之间的任何字符串。下面的代码工作正常,但我想输出与出这个符号[]正则表达式匹配[和]之间的任何字符串

我的代码:

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); 
     } 
    } 

回答

4

你会想要使用Match.Groups属性。既然你已经使用了括号,你可以得到你想要的组

MessageBox.Show(mtch.Groups[1].Value); 

组[0]将包含与[和]整个字符串。

另外,我觉得你的正则表达式可以简化

\[((\s*?.*?)*?)\] 

应相当于

\[(.*?)\] 

至今。*将匹配任何东西,包括白色的空间,这是什么\ S封面。

+0

谢谢你谢谢你工作正常 – anbuselvan 2010-09-04 12:48:35

1

尝试

MessageBox.Show(mtch.Groups[1].Value); 

这给了你第一个捕获组的值 - 内容的外部parantheses。

+0

谢谢你工作正常 – anbuselvan 2010-09-04 12:39:32

相关问题