Oppure

Loading
14/11/12 21:12
Roby94
Scusa ma non credo di aver capito bene, puoi provare a spiegare da cosa vuoi partire e a cosa vuoi arrivare
aaa
14/11/12 22:16
fusebyte
Ho una lista di nomi in un file.txt
Carico il file nella var _line
ora a me serve che il nome prenda la struttura di una email cosi':

nomelista@dominio.ext:nomelista

non mi interessa scrivere un dominio.ext vero e proprio
a me interessa piu' che altro capire la struttura della REGEX che da un
nomelista
trasformi in
nomelista@dominio.ext:nomelista

non essendoci http://, come catturo il nome, avendo solo @ ?


Si puo' fare?

Ciao

Ultima modifica effettuata da fusebyte 14/11/12 22:39
aaa
14/11/12 22:34
Roby94
Non mi sembra il caso di usare una regex, basta scrivere _line+"@dominio.ext:"+_line, no?
aaa
14/11/12 22:43
fusebyte
.......giusto....ma cosa sto dicendo...scusami.

Preso dalle REGEX ho fatto un ragionamento del tutto sballato.

Cmq ,Grazie ancora per l'aiuto.

Ciao
aaa
25/11/12 21:26
fusebyte
@Roby o Nessuno, una cortesia, nel Visual C#, usando REGEX o meno, come posso togliere parti numeriche a len variabile, iniziali o finali di una stringa ma non se il numero è contenuto dentro la stringa stessa?

es:
12111988Maria1
1988Maria1
e quindi ripulire la parte numerica a prescindere se sia data di nascita, codice progressivo o altro ed ottenere
Maria
Maria

se invece esistesse dentro la stringa una parte numerica, poterla salvare con la stringa stessa.
es:
09011973Piero1&Paolo2
1973Piero1&Paolo2
ed ottenere
Piero1&Paolo
Piero1&Paolo


Grazie Anticipate,Ciao
aaa
25/11/12 21:54
Roby94
Secondo me (ne sono quasi certo) eiste un modo per eseguire questa operazione interamente con le regex ma adesso sul momento non mi viene....
Comunque puoi adoperare questa tecnica:
-Esegui questa regex "^[0-9]*(.*)$" e prelevi il gruppo 1 eliminando tutto il resto, devi usare il replace e mettere come replace
-Ribalti la stringa, questo è semplice visto che puoi usare un array di char
-Riesegui la regex
-Ribalti nuovamente la stringa
Cosi ottieni il risultato voluto... Mi devo scervellare per trovare la regex giusta che risolva tutto in un solo passaggio :\ sono sicuro di averla gia vista....
aaa
25/11/12 23:35
fusebyte
Grazie per la tua risposta.
Il problema, essendo, spesso una lista,e lavorando pochissimo su stringhe uniche, è che non so a priori se hanno inserito un numero identificativo assieme al nome o no e sopratutto che valore è stato inserito.
Ti domando,mettendo varrebbe solo in questo specifico caso,credo?

Per farti un altro esempio diciamo che abbiano inserito
IDprogressivo , nome , data.nomevianumero o anno.iscrizione, es:

180Mario1970-180Rossi,viananni15a e pulendo i dati, dovrebbe uscire

Mario-Rossi,viaNanni15a

qui il 15 è dentro la stringa, quindi lo tengo , se fosse invece

180Mario1970-Rossi.iscrizione.anno1995

il risultato sarebbe senza il 1995 perche' finale di stringa

Mario-Rossi.iscrizione.anno

spero di non avertela fatta troppo complicata.

Riassumendo un un punto solo

Carico una lista, se e solo sono presenti numeri all'inizio e/o alla fine di una o piu' parole su una linea , li vado ad eliminare, preservando eventuali numeri interni alla parola.



Quindi dovrei modificarlo con un riferimento generale? ..non so $digits ( ma non ho proprio idea di come impostare il valore di digits)

Cmq faccio due prove con quello che mi hai consigliato.

Grazie per ora:k:
Ciao:k:


ps:
Ribalti la stringa, questo è semplice visto che puoi usare un array di char

Potresti farmi un esempio su come ribaltare la stringa,a dirti la verita' non ho capito bene questo punto della procedura.
Tk's
Ultima modifica effettuata da fusebyte 25/11/12 23:52
aaa
26/11/12 13:48
Roby94
Facciamo che ti spiego come funziona l'algoritmo che ti ho descritto:
Partiamo da una stringa es 180Mario1970-Rossi.iscrizione.anno1995 applichiamo il replace con la regex sopra citata
questa preleverà un gruppo, in particolare quello situato immediatamente dopo i numeri all'inizio della stringa (funziona anche se non vi sono numeri all'inizio) e lo restituisce cosi otterrai Mario1970-Rossi.iscrizione.anno1995. Secondo passaggio inverti la stringa (o ribalti come preferisci) 5991onna.enoizircsi.issoR-0791oiraM. Riapplichi il primo passaggio eliminando i numeri all'inizio della stringa onna.enoizircsi.issoR-0791oiraM. A questo punto non ti resta che ribaltare di nuovo la stringa ed hai finito Mario1970-Rossi.iscrizione.anno
Qui di seguito puoi vedere un codice di esempio:
string stringN = "180Mario1970-Rossi.iscrizione.anno1995";
stringN = System.Text.RegularExpressions.Regex.Replace(stringN, "^[0-9]*(.*)$", "");
stringN = new string(stringN.Reverse().ToArray());
stringN = System.Text.RegularExpressions.Regex.Replace(stringN, "^[0-9]*(.*)$", "");
stringN = new string(stringN.Reverse().ToArray());

Spero di essere stato chiaro ;)
aaa