Si nous prenons les motifs suivants : 70000@.* et 970000@.* la chaîne 970000@ILoveFishSticksAndTarTarSauce.com:5060 renvoie une correspondance avec 70000@.*
Je comprends pourquoi c'est une correspondance, mais je dois modifier l'expression régulière pour qu'elle ne fasse qu'une correspondance avec toute la chaîne.
Des idées ?
Merci !
J'utilise la bibliothèque .Net 3.5
Voici le code :
[Microsoft.SqlServer.Server.SqlProcedure]
public static void RouteRegex(string numéroDeTéléphone, out string valeur)
{
if (string.IsNullOrEmpty(numéroDeTéléphone))
{
valeur = string.Empty;
return;
}
const string strCommande =
"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(strCommande,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(numéroDeTéléphone, regEx);
Regex.IsMatch()
if (!match.Success) continue;
valeur = routeId.ToString();
return;
}
}
}
valeur = "Pas de correspondance !";
}
catch (Exception ex)
{
valeur = ex.Message;
return;
}
}
}