正则表达式以数字开头

时间:2012-07-26 13:07:58

标签: c# regex

我有一个像“1 n。鼠标2 n。扫描仪”的字符串。我正在寻找一个能够提取个别事件的正则表达式。谁可以帮助我?

3 个答案:

答案 0 :(得分:2)

\d+\D+将匹配从数字开始到下一个数字的所有内容。然后,您可以使用Regex.Matches查找该类别的所有匹配项。

快速PowerShell测试:

PS> [regex]::matches('1 n. Of mouse 2 n. Of scanners', '\d+\D+') | select -expand Value
1 n. Of mouse
2 n. Of scanners

答案 1 :(得分:1)

我假设你的字符串有一个或多个由数字组成的组,后跟“n.of”和一个对象,你想要提取每个对象及其出现。以下是基于此格式的示例:

MatchCollection matches = Regex.Matches(
    "1 n. Of mouse 2 n. of scanners",
    @"(?<num>\d+)\s+n\.\s+of\s+(?<obj>\w+)",
    RegexOptions.IgnoreCase);

foreach(Match m in matches) {
    Console.WriteLine("Match found:");
    Console.WriteLine("\tCount: {0}", m.Groups["num"]);
    Console.WriteLine("\tObject: {0}\n", m.Groups["obj"]);
}

及其输出:

Match found:
  Count: 1
  Object: mouse

Match found:
  Count: 2
  Object: scanners

答案 2 :(得分:0)

尝试使用此代码

        var value = "1 n. Of mouse 2 n. Of scanners";
        var result =  value.Split().Select(p => Regex.Match(p, @"^\d+$").Value).Where(p => ! p.Equals(string.Empty)).ToList();

结果是

1

2