c# - 正则表达式正确拆分

标签 c# regex split

我有一个包含数字和其他字符的字符串,例如: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/

相关文章:

c# - catch block 没有在另一个线程中捕获异常

c# - 具有显式接口(interface)的依赖属性

c# - 如何生成与JWT.IO网站相同的签名?

javascript - 从字符串中剥离一些字符

javascript - 如何确保正则表达式不匹配空字符串?

c# - 除了 SSN 之外的任何正则表达式

MySQL日期结果按日期分割

Java按单词将行分成2行

c# - 赢得 TextBox 的 Rt 更改事件

c# - 带有特定标签的 String.Split