c#正则表达式搜索这个值

本文关键字:搜索 正则表达式 | 更新日期: 2023-09-27 18:06:50

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

字符串stringvalue = "[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ı");
        }

是anaother vay字符串模式= "(()([0][0 - 9][0 - 9])(=)";

c#正则表达式搜索这个值

'[('d+)='d+']

您要查找的数字将在每个Match的第一组中:

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);
}

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

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

如果我理解对了,你是说底部都是一个字符串?如果是这样,不需要Regex(尽管您可以使用它),但我将只使用子字符串,因为您似乎希望它们分开。

str03 = "03"