求一个正则匹配只包含一次3个或4个连续数字

.Net技术 码拜 8年前 (2016-05-18) 915次浏览
譬如:
Mono-and Diglycerides Citrated (472c) 匹配成功,获取472
Mono-and 1983 Citrated (472c) 匹配失败。
有这种可行性吗?
假如不行的话,就求 匹配连续3个或4个的连续数字。
解决方案

1

引用:
Quote: 引用:

\d{3}|\d{4}

Mono-and 1983 Citrated (472c) 匹配出198 和472,能否让这种包含2处数字的不匹配?

直接用正则不好处理,在程序里处理方便些

string str = "Mono-and 1983 Citrated (472c)";
Regex rg = new Regex(@"\d{3}|\d{4}");
var Res = rg.Matches(str);
if(Res.Count>1)
{
    //不匹配    
}

5

只匹配3~4个连续数字
求一个正则匹配只包含一次3个或4个连续数字
只匹配一次好像做不到,但你可从匹配结果的集合长度上做判断

6

引用:
Quote: 引用:
Quote: 引用:
Quote: 引用:

\d{3}|\d{4}

Mono-and 1983 Citrated (472c) 匹配出198 和472,能否让这种包含2处数字的不匹配?

直接用正则不好处理,在程序里处理方便些

string str = "Mono-and 1983 Citrated (472c)";
Regex rg = new Regex(@"\d{3}|\d{4}");
var Res = rg.Matches(str);
if(Res.Count>1)
{
    //不匹配    
}

这个思路很好,谢谢。麻烦再帮本人一下,取出第一个匹配值。
string 第一个匹配值=?

匹配到的数字中第一个吗?

8

不好意思,以前看错了

string str = "Mono-and 1983 Citrated (472c)";
Regex rg = new Regex(@"\d+");
var Res = rg.Matches(str);
if (Res.Count > 0)
{
    return Res[0].Value; 
}
else
{
    return "No Result";
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明求一个正则匹配只包含一次3个或4个连续数字
喜欢 (0)
[1034331897@qq.com]
分享 (0)