我有一个包含数字和其他字符的字符串,例如:123\n456? *,,;;; '' 333\n789/\\+-
并且我试图仅从中获取数字作为数组
123
456
333
789
我试过类似的东西
serials = Regex.Replace(serials, @"\r\n?|\n|\t", " ");
var serialNumbers = Regex.Split(serials, @"(?<!($|[^\\])(\\\\)*?\\);");
但是我的数组有类似的东西
123 456? * ,,
empty
empty
'' 333 789/\\+-
有没有办法正确分割这个字符串?
最佳答案
尝试匹配,而不是拆分(即从字符串中提取数字):
string[] numbers = Regex
.Matches(source, "[0-9]+")
.OfType<Match>()
.Select(match => match.Value)
.ToArray();
如果硬要拆分就可以
string[] numbers = Regex
.Split(source, "[^0-9]+");
它更紧凑,但可能不太可读。
关于c# - 正则表达式正确拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48708910/