好的,这真的很奇怪。我有以下简单的正则表达式搜索模式
\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/