Extract Numbers from Mixed string
Mostrar comentarios más antiguos
Hello, I have this string
'single snap detector: 1 S2L:232867 S2R:3151621 S3L:0 S3R:0'
Whats the best way to get the 4 numbers and then the S2R - S2L value?
I have tried this:
B='single snap detector: 1 S2L:232867 S2R:3151621 S3L:0 S3R:0'
pat=regexpPattern("S2L:[/d]")
extract(B,pat)
But Im getting an empty array
1 comentario
Jason
el 9 de Feb. de 2024
Respuesta aceptada
Más respuestas (3)
Hi Jason
You can consider using the below regular expression to extract the required values.
'S2L:(\d+) S2R:(\d+) S3L:(\d+) S3R:(\d+)'
Hope this helps!
B = 'single snap detector: 1 S2L:232867 S2R:3151621 S3L:0 S3R:0';
Method one: SSCANF:
V = sscanf(B,'%*[^:]:%d') % very efficient
Method two: REGEXP (could also be EXTRACT):
T = regexp(B,'(S\w+):(\d+)','tokens');
T = vertcat(T{:}) % all relevant parts
V = str2double(T(:,2))
hello
i supposed you wanted to do this :
B='single snap detector: 1 S2L:232867 S2R:3151621 S3L:0 S3R:0'
% pat=regexpPattern("S2L:[/d]")
pat=regexpPattern("S2L:[\d]")
extract(B,pat)
my2 cents suggestion to extract all numbers present in this char array (up to you to pick the ones you are intersted in);
B='single snap detector: 1 S2L:232867 S2R:3151621 S3L:0 S3R:0'
C = regexp(B,'\d+(\.)?(\d+)?','match');
% convert string to num array
for ci = 1:numel(C)
out(ci,:) = str2double(C{ci});
end
out
1 comentario
Jason
el 9 de Feb. de 2024
Categorías
Más información sobre Characters and Strings en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!