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

use*_*912 1 .net c# regex

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

\d*
Run Code Online (Sandbox Code Playgroud)

不幸的是,它与"7"不匹配

*-7d
Run Code Online (Sandbox Code Playgroud)

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

xx
Run Code Online (Sandbox Code Playgroud)

它匹配"xx"

asdxxasd
Run Code Online (Sandbox Code Playgroud)

完全奇怪!顺便说一下,我正在使用普通的c#regex对象.提前感谢您的任何帮助!

对不起,我的代码如下:

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 "";
    }
}
Run Code Online (Sandbox Code Playgroud)

我将这些函数调用如下:

MessageBox.Show(utilities.FindFirstRegex("asdxxasd", "xx"));
MessageBox.Show(utilities.FindFirstRegex("ss327d", "\\d*"));
Run Code Online (Sandbox Code Playgroud)

Dan*_*dis 5

您的正则表达式匹配0位或更多位数.它开始查看你的模式,因为第一个字符是非数字,所以它匹配零数字.

如果你使用+而不是*,你会强制它从一个数字开始,然后(贪婪地)获得剩余的数字.