所以我想要的只是:
输入:嘿“有”“随机”
我只想:
GetTextBetweenBrackets(string userinput, 2);
然后
输出:随机
static string GetTextBetweenBrackets(string text, int number)
{
string Output = "";
string[] split = text.Split(' ');
Output = split[number].Split('"', '"')[1];
return Output;
}
该代码效果很好,但输入是:
输入:嘿“随机”“爱猫”
GetTextBetweenBrackets(string userinput, 2);
输出:没什么
答案 0 :(得分:1)
这似乎对你有用(但你应该注意潜在的例外)
static string GetTextBetweenBrackets(string text, int number)
{
return text.Split('"').Skip(2*number-1).First();
}
然后
var result0 = GetTextBetweenBrackets("Hey \"There\" \"Random\"", 2); //Random
var result1 = GetTextBetweenBrackets("Hey \"There random\" \"Love Cats\"", 2); //Love Cats
答案 1 :(得分:0)
使用正则表达式查找引号,获取文本直到产生匹配的下一个引号,然后可以通过索引到结果列表来获得正确的匹配。
static string GetTextBetweenBrackets(string text, int number)
{
return Regex.Matches(text, @"\x22([^\x22]+)\x22") // \x22 is the hex escape for "
.OfType<Match>()
.Select(mt => mt.Value)
.ToList()
[number - 1];
}
GetTextBetweenBrackets("Hey \"There random\" \"Love Cats\"", 2)
返回“Love Cats”
使用此功能的一个原因是,如果您的引号之间还有其他文本,这仍然有效。 Ex GetTextBetweenBrackets("My \"Name\" is, well \"Earl\"", 2)
将返回“Earl”并且工作,而其他解决方案将因为只关注一种类型的句子而失败。