1

我有一个这样的字符串:

numbers(23,54)

输入格式是这样的:

numbers([integer1],[integer2])

如何使用正则表达式获取数字“23”和“54”?或者还有其他更好的获取方式吗?

4

2 回答 2

3

您可以避免使用正则表达式,因此您的输入具有一致的格式:

string input = "numbers(23,54)";
var numbers = input.Replace("numbers(", "")
                   .Replace(")", "")
                   .Split(',')
                   .Select(s => Int32.Parse(s));

甚至(如果你不害怕幻数):

input.Substring(8, input.Length - 9).Split(',').Select(s => Int32.Parse(s))

更新这里还有正则表达式版本

var numbers = Regex.Matches(input, @"\d+")
                   .Cast<Match>()
                   .Select(m => Int32.Parse(m.Value));
于 2013-02-22T10:13:11.323 回答
2

是的 使用 (\d+) 正确获取数字 这是正确的方法

于 2013-02-22T10:12:03.300 回答