2009-09-15 6 views

risposta

-1

Ho usato invece strtok e strrep da Matlab.

+4

-1. Le altre risposte sono migliori qui poiché forniscono codice di esempio. Come hai usato 'strtok' e' strrep'? Mostra un esempio e passerò a un +1. – gary

+0

Questa è una buona offerta. – Richard

10

Per "più semplice",

>> email = '[email protected]' 
email = 
[email protected] 
>> email == '@' 
ans = 
    Columns 1 through 13 
    0  0  0  0  0  0  0  1  0  0  0  0  0 
    Columns 14 through 19 
    0  0  0  0  0  0 
>> at = find(email == '@') 
at = 
    8 
>> email(1:at-1) 
ans = 
johndoe 
>> email(at+1:end) 
ans = 
hotmail.com 

Sarebbe un po 'più complicato se stavi cercando qualcosa con più di un carattere, o non erano sicuri se ci fosse esattamente un @, e in quel caso MATLAB ha un sacco di funzioni per la ricerca di testo, comprese le espressioni regolari (vedi doc regexp).

17

STRTOK e un'operazione indice dovrebbe fare il trucco:

str = '[email protected]'; 
[name,address] = strtok(str,'@'); 
address = address(2:end); 

o l'ultima linea potrebbe anche essere:

address(1) = ''; 
7

TEXTSCAN funziona troppo.

str = '[email protected]'; 
parts = textscan(str, '%s %s', 'Delimiter', '@'); 

restituisce una matrice di celle in cui parti {1} è 'johndoe' e parti {2} è 'hotmail.com'.

12

È possibile utilizzare strread:

str = '[email protected]'; 
[a b] = strread(str, '%s %s', 'delimiter','@') 
a = 
    'johndoe' 
b = 
    'hotmail.com' 
+1

nota: le versioni recenti di MATLAB consigliano l'uso di 'textscan' invece di' strread' – Amro

-4

String email = "[email protected]";

String a[] = email.split("@"); 
    String def = null; 
    String ghi = null; 
    for(int i=0;i<a.length;i++){ 
     def = a[0]; 
     ghi = a[1]; 
    } 
+1

Questa non è la lingua corretta. – Lukas

5

Se questa discussione non è completamente elencata, è possibile aggiungerne un'altra? Un pratico perl basata funzione MATLAB:

email = '[email protected]'; 
parts = regexp(email,'@', 'split'); 

parti è una matrice di celle di due elementi simili attuazione textscan di per MTRW. Forse overkill, ma regexp è molto più utile quando si divide una stringa in base a più caratteri di delimitazione o ricerca di pattern. L'unico lato negativo è l'uso di espressioni regolari che non ho ancora imparato dopo 15 anni di programmazione.

+0

+1 strano che nessuno ha menzionato le espressioni regolari per tutto questo tempo :) – Amro