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

标签 c# .net regex

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

\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或多个数字。它开始查看您的模式,由于第一个字符是非数字,因此它与零个数字匹配。

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

关于c# - 奇怪的正则表达式(Regex)匹配!不匹配的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8959009/

相关文章:

c# - 子网掩码的正则表达式?

c# - 动态数据显示/获取用户输入的 x 坐标

c# - 在线程之间共享局部变量是否安全(通过回调闭包)?

c# - setter 和支持字段中的 .NET 逻辑

.net - 如何让 C# 应用程序在启动新进程后完成?

c# - 将正则表达式语法扩展为 'does not contain text XYZ'

javascript - PHP $_GET 和下划线

c# - 我的打印方法保存 XPS 文件但不打印?

c# - 需要一些正则表达式的帮助

c# - 如何使用 for 循环调用相似命名的文件