如何获取此字符串文本的数字?
string stringvalue =“[3 = 000] [98 = 000] [299 = 000] [120 = 000] [012 = 000] [92 = 000] [93 = 000] [04 = 000]”; < / p>
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])(=)”;这是模式(无替换)
答案 0 :(得分: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);
}
答案 1 :(得分: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
答案 2 :(得分:-2)
如果我理解你的话,你说底部是一个字符串?如果是这样,不需要正则表达式(虽然你可以使用它),但我会使用子串,因为你似乎希望它们分开。
即。 string str03 = ThatString.Substring(1,2);
str03等于“03”