How to remove delimiters, or special characters from a cell?
28 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Leonardo Wayne
il 31 Mar 2016
Commentato: Leonardo Wayne
il 5 Apr 2016
I have this cell array which contains items followed by special characters used as delimiters: 160225MD0004;#2;#13161504900013;#1 I will first convert this cell to a char. But afterwards, I want to obtain the following on their own:
a = 160225MD0004
b = 13161504900013
Also how to make this general, for example-three items and more: 123345KR00994;#3;#160225MD0004;#2;#13161504900013;#1
I should obtain:
a = 123345KR00994
b = 160225MD0004
c = 13161504900013
Note : (;#3) and (;#) have different usages : first one always follows the items to state the order (;#3)(;#2) (;#1)..etc. The second one (#;)separates two items- notice that the last item 13161504900013 doesn't have a trailing (#;) because there is no adjacent item to separate it from but it is still followed by (;#1) to state order.
Note: the individual alphanumeric characters can be of any length- no standard length. I just need extract them to assign them to individual variables.
0 Commenti
Risposta accettata
Charles Dunn
il 31 Mar 2016
Modificato: Charles Dunn
il 31 Mar 2016
This is a great time for regular expressions! The commands are very similar in bash scripting as well, so it's a useful tool to learn.
%input string
str = '123345KR00994;#3;#160225MD0004;#2;#13161504900013;#1';
%split string in to cell array by delimiter ';#'
t = regexp(str,';#','split');
%put alphanumeric values along first row, order along second row
t = reshape(t,2,length(t)/2);
alphanumeric = t(1,:);
%convert order to array of numbers
indices = str2double(t(2,:));
%order alphanumeric values properly (already ordered in example string...)
alphanumeric = alphanumeric(length(alphanumeric) - indices + 1);
Più risposte (1)
Leonardo Wayne
il 1 Apr 2016
2 Commenti
Charles Dunn
il 4 Apr 2016
the convert string is cut off on your screen shot, but are you sure it ends with ";#1"? my first guess would be that there is something strange happening at the end of the line. maybe there is an extra character at the end, like a space or a new line? not sure...
Vedere anche
Categorie
Scopri di più su Characters and Strings in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!