Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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,我有一个正在查找的字符串,它可以有两个可能的值: stuff 1 分组材料1-3 我不太熟悉使用正则表达式,但我知道如果使用正确,它会非常强大。如果这个问题听起来很可笑,请原谅我。我想知道是否可能有某种只留下字符串数字的正则表达式代码(例如,在本例中,1和1-3)但是如果它是1-3的例子,我可能只需要分别返回1和3就可以传递到一个函数中,以获得中间值 我希望我说的有道理。我很难用语言表达我所寻找的。如果有人需要进一步澄清,我非常乐意回答问题/编辑我自己的问题 要创建字符串y中的数字列表,请使用以

我有一个正在查找的字符串,它可以有两个可能的值:

  • stuff 1
  • 分组材料1-3
  • 我不太熟悉使用正则表达式,但我知道如果使用正确,它会非常强大。如果这个问题听起来很可笑,请原谅我。我想知道是否可能有某种只留下字符串数字的正则表达式代码(例如,在本例中,
    1
    1-3
    )但是如果它是
    1-3
    的例子,我可能只需要分别返回
    1
    3
    就可以传递到一个函数中,以获得中间值


    我希望我说的有道理。我很难用语言表达我所寻找的。如果有人需要进一步澄清,我非常乐意回答问题/编辑我自己的问题

    要创建字符串y中的数字列表,请使用以下命令:

    var listOfNumbers = Regex.Matches(y, @"\d+")
                               .OfType<Match>()
                               .Select(m => m.Value)
                               .ToList();
    
    var listOfNumbers=Regex.Matches(y,@“\d+”)
    第()类
    .选择(m=>m.Value)
    .ToList();
    
    这是完全可能的,但最好使用两个单独的正则表达式,例如
    SingleRegex
    RangeRegex
    ——然后检查其中一个,并在结果为
    RangeRegex
    时传递到函数中


    只要你在检查“特定位置的数字”,那么额外的数字就不会混淆你的算法。还有几个正则表达式测试程序,一个简单的谷歌搜索将为您提供一个检查各种语法和匹配的界面。

    您只是想循环检查字符串中的所有数字吗

    这里有一种方法可以在正则表达式中循环抛出每个匹配项

    using System;
    using System.Text.RegularExpressions;
    
    public class Program
    {
        public static void Main()
        {
            Regex r = new Regex(@"\d+");
            string s = "grouped stuff 1-3";
    
            Match m = r.Match(s);
    
            while(m.Success) 
            {
                string matchText = m.Groups[0].Value;
                Console.WriteLine(matchText);
                m = m.NextMatch();
            }   
        }
    
    }
    
    这个输出

    一,

    三,


    您的值中还有其他数字吗?类似:@Rawing-是的,这些数字可能change@scapegoat17:我不是那个意思-我想问的是,
    东西
    分组的东西
    能包含数字吗?例如
    将7个东西1-3分组
    ?@Rawing-哦,对不起。不,它将只在上面的格式。随着数字的变化。