捕获随机数值

时间:2016-06-02 14:25:57

标签: c#

我有文本文件:

Pool 53-12-74 up 123,55
Estimate,00: 237-123 not case, send up
Tech 123-45-6
Over head 12-22-27-8 beat
Pool 230-000 get up
Blink 123-90-88-3 up
...

等,其中X是随机数。我需要捕获包含六位数的所有值(带“ - ”符号)。我不知道如何用一个正则表达式做到这一点。

2 个答案:

答案 0 :(得分:1)

您可以尝试正则表达式 Linq

String source = 
  "a 123-456 up\nb 12-34-56 up\nc 987-55-4 beat";

String pattern = "[0-9]+(-?[0-9]+)*";

// [123-456, 12-34-56, 987-55-4]
String[] matches = Regex.Matches(source, pattern)
  .OfType<Match>()
  .Select(match => match.Value)
  .Where(match => match.Count(c => c >= '0' && c <= '9') == 6) // exactly 6 digits
  .ToArray(); // optionally, if you want matches as an array

答案 1 :(得分:1)

根据给定数据,简单Split函数可以解决您的问题

String[] s = File.ReadAllLines("FilePath");
foreach (string item in s)
{
   Console.WriteLine(item.Split(' ')[1]); 
}