C# 正则表达式获取单个连接的数字
我试图过滤掉inputstring上的addressnumber,但问题是当一个包含多个数字的字符串出现时,我的代码仍然会导致不需要的结果 是否有可能告诉正则表达式过滤到数组或类似的东西中,以识别原始字符串中是否有多个数字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)); 希望这有帮助()
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);
}
}
}