string test = @"just take this first line
even there is
some more
lines here";
Match m = Regex.Match(test, "^(.*)", RegexOptions.Multiline);
if (m.Success)
Console.Write(m.Groups[0].Value);
.
est souvent présentée pour correspondre à tout caractère, alors que ce n'est pas tout à fait vrai. .
correspond à n'importe quel caractère uniquement si vous utilisez l'option RegexOptions.Singleline
. Sans cette option, il correspond à n'importe quel caractère sauf '\n'
(fin de ligne).
Cela dit, une meilleure option est susceptible d'être:
string test = @"just take this first line
even there is
some more
lines here";
string firstLine = test.Split(new string[] {Environment.NewLine}, StringSplitOptions.None)[0];
Et mieux encore, est la version de Brian Rasmussen:
string firstline = test.Substring(0, test.IndexOf(Environment.NewLine));
Il ne fonctionne pas, vous avez essayé d'exécuter votre code? – Restuta
Oui, dans LINQPad. Quel est le problème de votre côté? –
Votre solution de rechange fait beaucoup de travail qui n'est pas vraiment nécessaire. Si le test est court, comme dans l'exemple, cela ne posera probablement pas de problème, mais pour une grande chaîne multi-ligne, c'est un peu gâché. –