0

たとえば、次の形式の文字列があります。

[ "{0}", "{1}", "{2}" ]

そのため、その文字列形式には常に 3 つのパラメーター (可変長) があることがわかっています。

文字列を解析する最も効率的な方法は何ですか? (そしておそらくそれに沿った最短のコードなので、いくつかのテストを実行する必要があります)

ありがとう。

4

3 に答える 3

0

最初の解決策:これが最も簡単だと思います-[と](最初と最後の文字)を切り取ります-「、」で分割します-> Trim()-> 3つの部分を取得します-冗長な文字(「{と}」など)を削除します予想される文字列に「{}->分割する前に削除できます」が含まれていないことを確認してください。

2番目の解決策:正規表現を使用する

于 2012-12-24T08:22:41.213 に答える
0

Regexクラスまたは文字列メソッドを使用して、さまざまな方法で実行できます。

を使用してそれを行う方法は次のRegex.Matchとおりです。

        string s = @"[ ""some test"", ""another test string"", ""hi there!"" ]";
        string[] vars = Regex.Matches(s, @"""([^""]*)""")
            .Cast<Match>()
            .Select(m => m.Groups[1].Value)
            .ToArray();

を使用する別の方法Regex.Split

        vars = Regex.Split(s.Remove(s.Length - 3, 3).Remove(0, 3), @""",\s""");

文字列メソッドでそれを行う 1 つの方法を次に示します。

        vars = s.Substring(s.IndexOf("\"") + 1, s.LastIndexOf("\"") - 3)
                    .Split(new string[] {@""", """}, StringSplitOptions.None);
于 2012-12-24T07:59:58.180 に答える
0

例: 抽出 --> お元気ですか?

string stuff = @"""{How}"", ""{Are}"", ""{You?}""";
string[] answer = (stuff.Replace(@"""{", String.Empty).Replace(@"}""", String.Empty)).Split(',');

これで、変数 answer に 3 つの単語が保持されます。

于 2012-12-24T17:08:00.690 に答える