找到引号之间的所有字符串

时间:2014-02-24 23:26:41

标签: c#

我有一个字符串:

text abc =“gsdfhdfhdfjdgfj”cde =“1234 235”> hh

我想找到引号中的单词(引号中有两个以上的单词..

所以在这个例子中,我有两个得到两个字符串:

gsdfhdfhdfjdgfj
1234 235

我知道我可以用regular expressions做到这一点,但也许有另一种解决方案?可能与substring

2 个答案:

答案 0 :(得分:1)

非正则表达式看起来像这样:

private static IList<string> betweenQuotes(string input)
{
    var result = new List<string>();

    int leftQuote = input.IndexOf("\"");

    while (leftQuote > -1)
    {
        int rightQuote = input.IndexOf("\"", leftQuote + 1);
        if (rightQuote > -1 && rightQuote > leftQuote)
        {
            result.Add(input.Substring(leftQuote + 1, (rightQuote - (leftQuote + 1))));
        }
        leftQuote = input.IndexOf("\"", rightQuote + 1);
    }

    return result;
}

包含两个示例的列表中的结果。

答案 1 :(得分:1)

string str = "text abc=\"gsdfhdfhdfjdgfj\" cde=\"1234 235\" >hh";

var result = str.Split('"').Where((s, i) => i % 2 == 1).ToList();