2010-09-04 172 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

相關問題