我有一个字符串,如“1 n。鼠标 2 n。扫描仪”。我正在寻找一个正则表达式来提取各个事件。谁能帮助我?
问问题
160 次
3 回答
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
于 2012-07-26T13:17:43.923 回答
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
于 2012-07-26T13:31:45.463 回答
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
于 2012-07-26T13:22:16.017 回答