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-哦,对不起。不,它将只在上面的格式。随着数字的变化。