如果我们采取以下模式:70000 @ *和970000 @ * 字符串[email protected]:。5060 返回一个匹配到70000 @ *.NET正则表达式匹配整个字符串
我理解它匹配的原因,但我需要修改正则表达式以仅执行完整的字符串匹配。
任何想法?
谢谢!
我使用.net 3.5库
下面是代码:
[Microsoft.SqlServer.Server.SqlProcedure]
public static void RouteRegex(string phoneNumber, out string value)
{
if (string.IsNullOrEmpty(phoneNumber))
{
value = string.Empty;
return;
}
const string strCommand =
"Select RouteID,sequence,Pattern From SIPProxyConfiguration.dbo.Routes order by routeid, sequence asc";
using (var connection = new SqlConnection("context connection=true"))
{
try
{
connection.Open();
using (var command =new SqlCommand(strCommand,connection))
{
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
var regEx = reader[2] as string;
if (string.IsNullOrEmpty(regEx)) continue;
var routeId = reader[0];
var sequence = reader[1];
var match = Regex.Match(phoneNumber, regEx);
Regex.IsMatch()
if (!match.Success) continue;
value = routeId.ToString();
return;
}
}
}
value = "No Match!";
}
catch (Exception ex)
{
value = ex.Message;
return;
}
}
}
非常感谢!我在记事本+ +(这是已知的正则表达式限制)尝试了这一点,它没有工作。我明天将它放入CLR SPROC并试用它。 .NET Regex Library有没有已知的限制? – Wjdavis5 2013-03-07 01:56:55
不是我所知道的。我经常使用这些操作员。另外,我使用http://regexpal.com/来测试事情,通常它可以和.NET – Syddraf 2013-03-07 05:00:05