2011-02-02 138 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,}”;

如果您搜索的第一个符合这种模式,你总是会得到什么是[]