-8

如何得到这个字符串文本的数字?

字符串字符串值 = "[3=000][98=000][299=000][120=000][012=000][92=000][93=000][04=000]";

        string pattern = "([)([0-2][0-9][0-9])(=)";
        Regex rgx = new Regex(pattern, RegexOptions.IgnoreCase);
        MatchCollection matches = rgx.Matches(stringvalue);
        if (matches.Count > 0)
        {
            Console.WriteLine("=== Sonuç ===");
            foreach (Match match in matches)
                Console.WriteLine("value={0}", match.Value.Replace("[", "").Replace("=", ""));
        }
        else
        {
            Console.WriteLine("bulunamdı");
        }

是另一个 vay 字符串模式 = "([)([0-2][0-9][0-9])(=)"; 这是模式(不可替换)

4

3 回答 3

2

\[(\d+)=\d+\]

您要查找的号码将在每场比赛的第一组中:

var input = "[03=000][98=000][999=000][120=000][01=000][92=000][93=000][1004=000]";
var regex = @"\[(\d+)=\d+\]";

var matches = Regex.Matches(input, regex);

foreach (Match m in matches)
{
    Console.WriteLine(m.Groups[1].Value);
}
于 2013-03-31T21:45:10.323 回答
1

我有时发现正则表达式有点讨厌。您可以考虑使用简单的字符串处理而不是匹配正则表达式。这肯定会为您的输入完成工作。

string val  = "[03=000][98=000][999=000][120=000][01=000][92=000][93=000][1004=000]";

string[] numbers = val.Split(new []{ '[', ']', '=' }, StringSplitOptions.RemoveEmptyEntries)
                      .Where((v, i) => i % 2 == 0)
                      .ToArray();

Console.WriteLine(string.Join(Environment.NewLine, numbers));

印刷:

03
98
999
120
01
92
93
1004
于 2013-03-31T21:46:50.663 回答
-2

如果我没听错的话,你是说底部都是一串?如果是这样,则不需要正则表达式(尽管您可以使用它),但我只会使用子字符串,因为您似乎希望它们分开。

即字符串str03 = ThatString.Substring(1,2);

str03 将等于“03”

于 2013-03-31T21:43:05.143 回答