Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正则表达式以数字开头_C#_Regex - Fatal编程技术网

C# 正则表达式以数字开头

C# 正则表达式以数字开头,c#,regex,C#,Regex,我有一个类似“1 n.鼠标2 n.扫描仪”的字符串。我正在寻找一个正则表达式来提取各个事件。谁能帮我?\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 \d+

我有一个类似“1 n.鼠标2 n.扫描仪”的字符串。我正在寻找一个正则表达式来提取各个事件。谁能帮我?

\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

\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
请尝试使用此代码

        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();
结果是

一,

2

尝试使用此代码

        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();
结果是

一,


2

我假设您的字符串有一个或多个组,这些组由一个数字加上“n”组成。和一个对象,您希望提取每个对象及其引用。以下是基于此格式的示例:

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"]);
}

我假设字符串中有一个或多个组,它们由一个数字后跟“n”组成。和一个对象,您希望提取每个对象及其引用。以下是基于此格式的示例:

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"]);
}

“个别事件”?请向我们展示一个您期望的输出示例。您的问题有点不清楚;您到底想从该字符串中提取什么?个别事件是什么?正如@0xc0de所说:您尝试了什么?字符串是否会包含不属于您希望提取的文本的数字?例如,is“1 n”。数字1000“有效?我希望列表中包含1 n.鼠标1 n.我尝试的扫描仪^[0-9a-z]\w*\s$,但未成功”单个事件"? 请给我们一个你期望的产出的例子。你的问题有点不清楚;你到底想从那个字符串中提取什么?什么的单独出现?正如@0xc0de所说:您尝试了什么?字符串是否会包含不属于您希望提取的文本的数字?例如,“1 n.数字1000”有效吗?我希望列表中包含1 n。鼠标的1个,扫描仪的n个,我尝试了^[0-9a-z]\w*\s$,但没有成功。更准确地说,这从一个数字(无符号整数)匹配到下一个。更准确地说,这从一个数字(无符号整数)匹配到下一个。