2011-02-02 166 views
1

我有一個字符串作爲下正則表達式來獲取值從[]

「= [第一冊]工作表Sheet1!$ F $ 13」

所需的輸出是第一冊

有沒有任何正則表達式來做到這一點?

目前我正在使用字符串拆分來完成工作。

string input = "=[Book1]Sheet1!$F$13"; 
var res = input.Split('[')[1].Split(']')[0]; 

由於

+0

外觀就像字符串分割工作得很好 - 如果你實現一個正則表達式而不是 – warren 2011-02-02 05:27:06

回答

1

如果你需要的是Excel工作簿的名稱,這將裏面做的:

string res = null; 
Match m = Regex.Match(input, @"^=\[(.+)\].+$"); 

if (m.Success) 
{ 
    res = m.Groups[1].Value; 
} 
+0

`string res = null`是正確的,那麼我會很感興趣知道性能改變是什麼,當分配給null時,隱式類型將失敗。此外,雙字節字符串中的雙字節轉義不正確。 – 2011-02-02 05:38:38

0

嘗試:

串正則表達式= 「[A-ZA-Z0-9] {1,}」;

如果您搜索的第一個符合這種模式,你總是會得到什麼是[]