2009-09-15 12 views

Respuesta

-1

Usé strtok y strrep de Matlab en su lugar.

+4

-1. Las otras respuestas son mejores aquí ya que proporcionan código de ejemplo. ¿Cómo usaste 'strtok' y' strrep'? Muestre un ejemplo y daré vuelta a un +1. – gary

+0

Esa es una buena oferta. – Richard

10

Por "más fácil",

>> 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 

Sería un poco más complicado si estuviera buscando algo con más de un carácter, o usted no estaba seguro de si había exactamente un @, y en ese case MATLAB tiene muchas funciones para buscar texto, incluidas las expresiones regulares (ver doc regexp).

17

STRTOK y una operación de índice debe hacer el truco:

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

O la última línea también podría ser:

address(1) = ''; 
7

TEXTSCAN también funciona.

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

devuelve una matriz de células donde las piezas {1} es 'JohnDoe' y partes {2} es 'hotmail.com'.

12

Puede utilizar strread:

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

nota: las versiones recientes de MATLAB recomiendan usar 'textscan' en lugar de' strread' – Amro

-4

correo electrónico String = "[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

Este no es el idioma correcto. – Lukas

5

Si este hilo no está completamente enumerado por ahora, ¿puedo agregar otro? Una función MATLAB basado en Perl útil:

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

piezas es un conjunto de celdas de dos elementos similares a los de MTRW implementación de TextScan. Tal vez exagerado, pero regexp es mucho más útil cuando se divide una cadena por múltiples caracteres de delimitación o búsqueda de patrones. El único inconveniente es el uso de expresiones regulares que todavía no he dominado después de 15 años de codificación.

+0

+1 extraño que nadie haya mencionado expresiones regulares todo este tiempo :) – Amro

Cuestiones relacionadas