C#中的Text.RegularExpressions.Regex类,在这个类中我试图找到包含“years”字的字符串
string s11 ="java developer in new york 2years exp"
在我使用之前
Regex = new Regex("(\d+)(years?)");
这里我在给定的s11字符串中获取内部值,如
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"
任何机构都可以为这个问题提供正确的解决方案;那就是寻找整数和十进制值。
由于 普拉迪普
答案 0 :(得分:2)
你的很近;我想如果你只是添加可选的小数部分:
Regex = new Regex("((?:\d*\.)?\d+)(years?)");
答案 1 :(得分:1)
怎么样?
Regex = new Regex("([0-9]?\.?\d+)\s*(years?)");
此外,还有许多工具可以让您以交互方式进行尝试,例如
http://visualstudiogallery.msdn.microsoft.com/16b9d664-d88c-460e-84a5-700ab40ba452
答案 2 :(得分:1)
试试这个
new Regex(@"([0-9]*\.[0-9]+|[0-9]+)*years");
此外,为了将来参考,http://regexpal.com/是测试正则表达式的简单工具,http://www.regular-expressions.info提供了大量示例。