Skip to main content
 首页 » 编程设计

c#之奇怪的正则表达式(Regex)匹配!不匹配的数字

2024年01月22日27soundcode

好的,这真的很奇怪。我有以下简单的正则表达式搜索模式

\d* 


不幸的是,它与“ 7”不匹配

*-7d 


但是当我测试以下正则表达式搜索模式时

xx 


在“ xx”中匹配

asdxxasd 


完全奇怪!
顺便说一句,我正在使用普通的c#正则表达式对象。
预先感谢您的帮助!

抱歉,我的代码如下:

public static string FindFirstRegex(string input,string pattern) 
{ 
    try 
    { 
        Regex _regex = new Regex(@pattern); 
        Match match = _regex.Match(input.ToLower()); 
        if (match.Success) 
        { 
            return match.Groups[0].Value; 
        } 
        else 
        { 
            return null; 
        } 
    } 
    catch 
    { 
        return ""; 
    } 
} 


我将函数调用如下:

MessageBox.Show(utilities.FindFirstRegex("asdxxasd", "xx")); 
MessageBox.Show(utilities.FindFirstRegex("ss327d", "\\d*")); 

请您参考如下方法:

您的正则表达式匹配0或多个数字。它开始查看您的模式,由于第一个字符是非数字,因此它与零个数字匹配。

如果使用+而不是*,则将其强制从一个数字开始,然后(贪婪地)获得其余的数字。