1

引用符の間の単語を抽出し、値を変数に格納する必要があります。

私の保険数理の文字列は

m:「液体」n:「4」

上記の文字列から。抽出する必要があります

単語liquid4

そしてこのように保存するには

var m = "liquid";
var n = "4";

C#の正規表現でこれを行うにはどうすればよいですか?

4

6 に答える 6

2

形式が常にそれである場合は、分割し:て、文字の間に必要な要素で始まる文字列の配列があることを知ることができます'

于 2013-03-01T11:46:05.193 に答える
1

質問に「linq」のタグを付けたら、次のことを試すことができます。

var str = @"m:'liquid' n:'4'";
var r = str.Split(new [] {'\''}).Where((s, i) => i % 2 == 1).ToArray();
var m = r[0];
var n = r[1];
于 2013-03-01T11:49:06.643 に答える
1

これが一般的な解決策です

public Dictionary<string, string> GetValues(string input)
{
    var results = new Dictionary<string, string>();
    var pairs = input.Split(" ");
    foreach(var pair in pairs)
    {
        var parts = pair.Split(":");
        results.Add(parts[0], parts[1].Trim("'"));
    }
    return results;
}

var str = "m:'liquid' n:'4'";
var values = GetValues(str);
var m = values["m"];
var n = values["n"];
于 2013-03-01T11:58:12.747 に答える
0
Regex regex = new Regex("(?<=')\\w+(?<!')");
var matches = regex.Matches("m:'liquid' n:'4'");

'が前にあり、'が後に続く任意の単語に一致します。

var m = matches[0];
var n = matches[1];
于 2013-03-01T11:52:03.687 に答える
0
   var s = "m:'liquid' n:'4'";
   var ss = s.Split(new char[]{' ', ':'}, StringSplitOptions.RemoveEmptyEntries);

ssのペアは次のようになります:{"m"、 "'liquid'"、 "n"、"'4'"}。空の値('')がある場合に機能します。

于 2013-03-01T12:09:02.453 に答える
0

実際に使用できます。indexOf文字列

var x = "m:'liquid' n:'4'";
var split = x.Split(' ');
var indexm0 = split[0].IndexOf("'");
var indexm1 = split[0].LastIndexOf("'");

var m = split[0].Substring(indexm0, indexm1 - 1);

var indexn0 = split[1].IndexOf("'");
var indexn1 = split[1].LastIndexOf("'");
var n = split[1].Substring(indexn0, indexn1 - 1);
于 2013-03-01T12:47:14.893 に答える