我有这个字符串的最佳方式:会是怎样解析字符串中2个字符
“网络适配器本地主机上的‘瑞昱的PCIe GBE家庭控制器’”
这将是最好的方式只返回“'”之间的字符串? (瑞昱的PCIe GBE家庭控制器)
我有这个字符串的最佳方式:会是怎样解析字符串中2个字符
“网络适配器本地主机上的‘瑞昱的PCIe GBE家庭控制器’”
这将是最好的方式只返回“'”之间的字符串? (瑞昱的PCIe GBE家庭控制器)
可以使用Substring()
方法砍掉它。
tempStr = str.Substring(str.IndexOf("'")+1);
yourStr = tempStr.SubString(0, tempStr.IndexOf("'"));
如果您熟悉正则表达式,你可以使用这样的模式:
/'[^']*'/
捕捉单引号之间的一切
您可以使用正则表达式,像这样:
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。
如果你知道有两个'',你可以遍历字符。您可以使用正则表达式,也可以对Substring使用IndexOf和LastIndexOf。 – Blim