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])(=)";
'[('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"