C# 正则表达式获取单个连接的数字

C# 正则表达式获取单个连接的数字,c#,regex,split,C#,Regex,Split,我试图过滤掉inputstring上的addressnumber,但问题是当一个包含多个数字的字符串出现时,我的代码仍然会导致不需要的结果 是否有可能告诉正则表达式过滤到数组或类似的东西中,以识别原始字符串中是否有多个数字 String theNumbers = String.Join(String.Empty, Regex.Matches(inputString, @"\d+").OfType<Match>().Select(m => m.Value)); 希望这有帮助()

我试图过滤掉inputstring上的addressnumber,但问题是当一个包含多个数字的字符串出现时,我的代码仍然会导致不需要的结果

是否有可能告诉正则表达式过滤到数组或类似的东西中,以识别原始字符串中是否有多个数字

String theNumbers = String.Join(String.Empty, Regex.Matches(inputString, @"\d+").OfType<Match>().Select(m => m.Value));
希望这有帮助():

使用系统;
使用System.Text.RegularExpressions;
使用System.Linq;
公共课程
{
公共静态void Main()
{
var inputString=“1 2 3”;
var值=正则表达式
.Matches(输入字符串,@“(?\d+))
第()类
.选择(m=>m.Groups[“nr”].值)
.ToArray();
Console.WriteLine(“多个数字:+(values.Length>1?“是”:“否”);
foreach(值中的var v)
{
控制台写入线(v);
}
}
}

能否显示您正在处理的数据以及所需的结果?您已经使用
Regex.Matches(inputString,@“\d+”).OfType()提取了数字。选择(m=>m.Value)
。添加
.ToList()
以获取列表,或添加
.ToArray()
以获取数组<代码>字符串。在这里连接所有找到的数字。尝试
string[]extractedNumbersArray=Regex.Matches(inputString,@“\d+”).Cast()。选择(m=>m.Value.ToArray()你说得对@WiktorStribiżew这解决了我的问题:)谢谢。
String[] extractedNumbersArray = Regex.Split(inputString, @"\D+");
using System;
using System.Text.RegularExpressions;
using System.Linq;

public class Program
{
    public static void Main()
    {
        var inputString = "1 2 3";

        var values = Regex
            .Matches(inputString, @"(?<nr>\d+)")
            .OfType<Match>()
            .Select(m => m.Groups["nr"].Value)
            .ToArray();

        Console.WriteLine("Multipe numbers: " + (values.Length > 1 ? "yep" : "nope"));
        foreach (var v in values) 
        {
            Console.WriteLine(v);
        }
    }
}