我有一个这样的字符串:
numbers(23,54)
输入格式如下:
numbers([integer1],[integer2])
如何使用正则表达式获取数字“23”和“54”?或者还有其他更好的方法吗?
答案 0 :(得分: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))
更新此处还有Regex版本
var numbers = Regex.Matches(input, @"\d+")
.Cast<Match>()
.Select(m => Int32.Parse(m.Value));
答案 1 :(得分:2)
是的,使用(\ d +)正确获取数字 这是正确的方法