Ricerca e sostituzione in txt

lunedì 13 ottobre 2008 - 16.30

frenk17 Profilo | Junior Member

ciao ragazzi...ho bisogno del vostro aiuto...
se io ho un testo
es...

20/03/2008 pippo napoli
15/03/2008 quo torino
20/03/2008 paperino palermo
24/03/2008 pippo torino
02/03/2008 pippo milano


come faccio ad effettuare una ricerca di tutte le righe che contengono "20/03/2008"...
poi tra le 2 che restano in questo caso , ricercare quella che contiene "pippo"....
e sostituire "pippo" con "topolino"....
spero di essere stato chiaro... vi ringrazio in anticipo

freeteo Profilo | Guru

ciao,
io la ricerca complessa di stringhe in testi vari, quando posso, uso sempre le Regex.
http://it.wikipedia.org/wiki/Espressione_regolare
http://www.regular-expressions.info/

Sono complicate da capire inizialmente, ma poi ti trovi molto ma molto bene nel fare pattern che ti risolvono delle complessità che dovresti altrimenti gestirti tramite loop a volte veramente contorti.

Le regex hanno anche la possibilità di fare Replace di quello che trovano in "match", con il pattern che gli passi, a volte puoi passargli proprio un valore stringa che ti faccia da filtro:
20/03/2008(.*(pippo))

se non ho capito male tu sapevi già la data esatta, altrimenti se devi tirare fuori quello che c'è prima, che sia data, puoi farla con:
\d{2}/\d{2}/\d{4}(.*(pippo))

se poi invece di "pippo" ti servisse la stringa che sia fino al primo spazio:
\d{2}/\d{2}/\d{4}(.[^\s]*)

e via così...trovato il pattern giusto, puoi come ti dicevo farti un Replace:
Regex.Replace( "...TESTO...." "...PATTERN...", "...VALORE NUOVO...", RegexOptions.Multiline | RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);

"Regex" è una classe del namespace "System.Text.RegularExpressions" che hai nel framework, e ti torna una stringa con il risultato.


ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5