2009-09-15 19 views

Trả lời

-1

Tôi đã sử dụng strtok và strrep từ Matlab để thay thế.

+4

-1. Các câu trả lời khác là tốt hơn ở đây vì chúng cung cấp mã ví dụ. Bạn đã sử dụng 'strtok' và' strrep' như thế nào? Hiển thị ví dụ và tôi sẽ chuyển sang +1. – gary

+0

Đó là một đề nghị tốt. – Richard

10

Đối với "dễ nhất",

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

Nó sẽ là một chút phức tạp hơn nếu bạn đang tìm kiếm một cái gì đó với hơn một ký tự, hoặc bạn đã không chắc chắn nếu có chính xác một @, và trong đó trường hợp MATLAB có rất nhiều chức năng để tìm kiếm thông qua văn bản, bao gồm các biểu thức chính quy (xem doc regexp).

17

STRTOK và phẫu thuật chỉ nên làm các trick:

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

Hoặc dòng cuối cùng cũng có thể là:

address(1) = ''; 
7

TEXTSCAN làm việc quá.

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

trả về mảng ô nơi các phần {1} là 'johndoe' và các phần {2} là 'hotmail.com'.

12

Bạn có thể sử dụng strread:

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

lưu ý: các phiên bản gần đây của MATLAB khuyên bạn nên sử dụng 'textcan' thay vì' strread' – Amro

-4

Chuỗi 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

Đây không phải là ngôn ngữ chính xác. – Lukas

5

Nếu chuỗi này chưa được liệt kê đầy đủ, tôi có thể thêm một chuỗi khác không? Hàm MATLAB dựa trên perl tiện dụng:

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

phần là mảng ô hai phần tử tương tự như việc thực thi văn bản của mtrw. Có thể quá mức cần thiết, nhưng regexp hữu ích hơn nhiều khi tách một chuỗi bằng nhiều ký tự phân cách hoặc tìm kiếm mẫu. Nhược điểm duy nhất là việc sử dụng các biểu thức thông thường mà tôi vẫn chưa nắm vững sau 15 năm mã hóa.

+0

+1 lạ mà không ai đề cập đến cụm từ thông dụng trong suốt thời gian này :) – Amro

Các vấn đề liên quan