C# 如何在System.Text.RegularExpressions.Regex中查找整数或小数

C# 如何在System.Text.RegularExpressions.Regex中查找整数或小数,c#,regex,string,C#,Regex,String,c中的Text.RegularExpressions.Regex类,在这个类中我试图找到包含单词的字符串 string s11 ="java developer in new york 2years exp" 在我使用之前 Regex = new Regex("(\d+)(years?)"); 这里,我在给定的s11字符串中获取inter值 Match match = regex.Match(ss); if(match.Success) { string s = match.Gr

c中的Text.RegularExpressions.Regex类,在这个类中我试图找到包含单词的字符串

 string s11 ="java developer in new york 2years exp"
在我使用之前

Regex = new Regex("(\d+)(years?)");
这里,我在给定的s11字符串中获取inter值

Match match = regex.Match(ss);

if(match.Success)
{
    string s = match.Groups[1];
    string s1 = match.Groups[2];
}
但是,如果我更改字符串,则此项仅适用于integer,如:

string s11="java developer in new york 0.10years exp"
它停止工作了

我想与整数或十进制一样的工作

    string s11="java developer in new york 2years exp"
    string s11="java developer in new york 0.10years exp"
任何机构都能为这个问题提供正确的解决方案吗;即查找整数值和十进制数值

谢谢 普拉迪普怎么样

Regex = new Regex("([0-9]?\.?\d+)\s*(years?)");
此外,还有许多工具可以让您以交互方式尝试它们,如

那怎么办

Regex = new Regex("([0-9]?\.?\d+)\s*(years?)");
此外,还有许多工具可以让您以交互方式尝试它们,如

试试这个

new Regex(@"([0-9]*\.[0-9]+|[0-9]+)*years");
另外,作为将来的参考,它是一个测试正则表达式的简单工具,并给出了许多示例。

试试这个

new Regex(@"([0-9]*\.[0-9]+|[0-9]+)*years");

此外,作为将来的参考,它是一个测试正则表达式的简单工具,并给出了许多示例。

您的示例很接近;我认为,如果您只需添加可选的小数部分:

Regex = new Regex("((?:\d*\.)?\d+)(years?)");

你的很接近;我认为,如果您只需添加可选的小数部分:

Regex = new Regex("((?:\d*\.)?\d+)(years?)");