1

c# 中的 Text.RegularExpressions.Regex 类,在这个类中,我试图在其中找到包含“年”字的字符串

 string s11 ="java developer in new york 2years exp"

在我使用之前

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

在这里,我是给定的 s11 字符串中的 getttig inter 值,例如

Match match = regex.Match(ss);

if(match.Success)
{
    string s = match.Groups[1];
    string s1 = match.Groups[2];
}

但是这个只适用于整数,如果假设我改变了我的字符串,比如:

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"

任何机构都可以为这个问题提供正确的解决方案吗?即同时查找整数和十进制值。

感谢 pradeep

4

3 回答 3

2

你的很近;我想如果你只是添加可选的小数部分:

Regex = new Regex("((?:\d*\.)?\d+)(years?)");
于 2013-03-18T12:25:19.350 回答
1

关于什么 ?

Regex = new Regex("([0-9]?\.?\d+)\s*(years?)");

此外,还有许多工具可让您以交互方式试用它们,例如

http://visualstudiogallery.msdn.microsoft.com/16b9d664-d88c-460e-84a5-700ab40ba452

于 2013-03-18T12:16:41.790 回答
1

试试这个

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

此外,为了将来参考,http://regexpal.com/是一个测试正则表达式的简单工具, http ://www.regular-expressions.info提供了很多示例。

于 2013-03-18T12:16:55.263 回答