2009-09-15 3 views

ответ

-1

Вместо этого я использовал strtok и strrep из Matlab.

+4

-1. Остальные ответы здесь лучше, так как они предоставляют пример кода. Как вы использовали 'strtok' и' strrep'? Покажите пример, и я перейду на +1. – gary

+0

Это хорошее предложение. – Richard

10

Для «простой»,

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

Было бы немного более сложным, если вы ищете что-то с более чем один символ, или вы не были уверены, что если бы был точно один @, а в том, что case MATLAB имеет множество функций для поиска по тексту, включая регулярные выражения (см. doc regexp).

17

STRTOK и операция индекс должен сделать трюк:

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

или последняя строка может также быть:

address(1) = ''; 
7

TEXTSCAN тоже работает.

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

возвращает массив ячеек, где части {1} 'JohnDoe' и части {2} 'hotmail.com'.

12

Вы можете использовать strread:

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

примечание: последние версии MATLAB рекомендуют использовать 'textscan' вместо' strread' – Amro

-4

Строка электронной почты = "[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

Это неправильный язык. – Lukas

5

Если эта нить не полностью перечислина, могу ли я добавить другую? Удобный Perl на основе MATLAB функция:

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

части является массив ячеек два элемента похожи, чтобы mtrw реализации TextScan. Может быть, overkill, но regexp гораздо полезнее при разбиении строки на несколько разграничивающих символов или на поиск шаблонов. Единственным недостатком является использование регулярных выражений, которые я до сих пор не освоил после 15 лет кодирования.

+0

+1 странно, что никто не упоминал регулярные выражения все это время :) – Amro

Смежные вопросы