如果我們採取以下模式: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