2012-12-09 26 views
1

我有这个字符串的最佳方式:会是怎样解析字符串中2个字符

“网络适配器本地主机上的‘瑞昱的PCIe GBE家庭控制器’”

这将是最好的方式只返回“'”之间的字符串? (瑞昱的PCIe GBE家庭控制器)

+0

如果你知道有两个'',你可以遍历字符。您可以使用正则表达式,也可以对Substring使用IndexOf和LastIndexOf。 – Blim

回答

0

可以使用Substring()方法砍掉它。

tempStr = str.Substring(str.IndexOf("'")+1); 
yourStr = tempStr.SubString(0, tempStr.IndexOf("'")); 
2

如果您熟悉正则表达式,你可以使用这样的模式:

/'[^']*'/ 

捕捉单引号之间的一切

2

您可以使用正则表达式,像这样:

var s = "hello 'world' hehe"; 
var m = Regex.Match(s, "'([^']*)'"); 
string res = null; 
if (m.Success) { 
    res = m.Groups[1].ToString(); 
} 
Console.WriteLine(res); 

到解决方案的关键是这样的正则表达式:

'([^']*)' 

它开始比赛的时候,它找到了一个单引号,并继续,直到它找到结束报价,捕获介于两者之间的所有内容。然后通过Regex API检索捕获的组。请注意,您定义的捕获组从索引1开始;索引零被保留以表示“整个匹配”。请参阅demo on ideone