Ho un file di testo che ha linee di dati separate da una nuova riga. Quello che sto cercando di fare è contare il numero di righe nel file, escludendo quelle che sono solo una nuova riga.Corrisponde solo a un carattere di nuova riga
Sto cercando di utilizzare un'espressione regolare per esaminare ogni riga mentre viene letta, e se inizia con un carattere di nuova riga non lo include nel conteggio delle righe, ma non riesco a farlo funzionare correttamente . Ho cercato dappertutto su come fare questo senza risultati.
Ecco il metodo che ho scritto per cercare di fare questo:
public int LineCounter()
{
StreamReader myRead = new StreamReader(@"C:\TestFiles\test.txt");
int lineCount = 0;
string line;
while ((line = myRead.ReadLine()) != null)
{
string regexExpression = @"^\r?\n";
RegexOptions myOptions = RegexOptions.Multiline;
Match stringMatch = Regex.Match(line, regexExpression, myOptions);
if (stringMatch.Success)
{
}
else
{
lineCount++;
}
}
return lineCount;
}
Ho provato a cambiare le RegexOptions tra Singleline
e Multiline
, ho provato a mettere nel mio "\r|\n|\r\n"
pattern match, mi e' Ho provato a rimuovere il ^
dall'espressione, ma non riesco a farlo funzionare. Qualunque cosa io faccia, il mio lineCount
finisce sempre per essere il numero totale di righe nel file, incluse le nuove righe.
Apparentemente trascurando qualcosa di ovvio, ma non sono ancora abbastanza familiare con il linguaggio C# per vedere cosa c'è che non va. Sembra che tutto dovrebbe funzionare per me. Qualcuno può aiutarmi?
Prova '@ "^ $ \ r? \ N?"' –
ho deciso di andare con un altro @newStackExchangeInstance approccio, ma questo fissato il mio regex. Grazie :) – CurtisFreak