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);
.
è spesso propagandato per adattarsi a qualsiasi personaggio, mentre questo non è del tutto vero. .
corrisponde a qualsiasi carattere solo se si utilizza l'opzione RegexOptions.Singleline
. Senza questa opzione, corrisponde a qualsiasi carattere ad eccezione di '\n'
(fine riga).
Detto questo, una soluzione migliore è probabile che sia:
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];
E meglio ancora, è la versione di Brian Rasmussen:
string firstline = test.Substring(0, test.IndexOf(Environment.NewLine));
fonte
2009-10-16 09:12:40
E non funziona, hai provato a eseguire il codice? – Restuta
Sì, in LINQPad. Cosa c'è che non va? –
La tua soluzione alternativa fa un sacco di lavoro che non è veramente necessario. Se il test è breve come nell'esempio, probabilmente non sarà un problema, ma per una grande stringa multi-linea è un po 'di spreco. –