J'aimerais comprendre si mon message comprend un ensemble fixe de caractères tels que
<number>:<number>
Ce que j'essaye c'est:
if (!loggingEvent.RenderedMessage.Contains("[0-9]:[0-9]"))
{
...
}
mais ça ne marche pas comme je veux. Comment puis-je le réparer? C'est en C #.
MODIFIER
La chaîne entière est comme:
The server IP is -> 127.1.2.35:9001!
Réponses:
2 pour la réponse № 1Une approche regex ressemblera à
if (!Regex.IsMatch(loggingEvent.RenderedMessage, "[0-9]+:[0-9]+"))
Notez que String.Contains
ne supporte pas les regex. Aussi, [0-9]
correspond à 1 chiffre alors que vous voulez probablement autoriser 1 ou plus (c’est ce que +
assure).
Voir la démo en ligne C # extraire également cette sous-chaîne:
var s = "The server IP is -> 127.1.2.35:9001!";
var result = Regex.Match(s, @"[0-9]+:[0-9]+");
if (result.Success)
Console.WriteLine(result.Value);
else
Console.WriteLine("No match!");
0 pour la réponse № 2
Regex regex = new Regex(@"[0-9]:[0-9]");
Match match = regex.Match("<number>:<number>");
if (match.Success)
{
Console.WriteLine(match.Value);
}