split a string by a set of pre-defined number of characters rather than any delimiter
4 views (last 30 days)
Show older comments
How to
1) First split a string by the number of chacters to five substrings, where sub string 1 has 19 characters and the rest of 4 substrings have only 13 chacaters?
Please note that I do not want to split using the tab or whitespace.
2) Remove any non dnumeric values (e.g. "- Psat" in the following example) and any white spaces from the resulting substrings?
Example: if S1 is my original string
S1= ' 961.666 - Psat 1.0000 45.0971 3.6734'
I want to have the final substrings as
'961.666', '1.0000', '45.0971' and '3.6734'
1 Comment
Rik
on 8 Nov 2019
You can use a regular expression. I'm on mobile, so writing the regex myself is a bit challenging.
Accepted Answer
Stephen23
on 8 Nov 2019
You could do that using regular expressions:
>> S1 = ' 961.666 - Psat 1.0000 45.0971 3.6734';
>> C = regexp(S1,'(.{19})(.{13})(.{13})(.{13})(.{13})','tokens','once');
>> C = regexprep(C,'[^\d\.]+','')
C =
'961.666' '1.0000' '' '45.0971' '3.6734'
Although I suspect that you probably want something more like this:
>> C = regexp(S1,'\d+\.\d*','match')
C =
'961.666' '1.0000' '45.0971' '3.6734'
0 Comments
More Answers (1)
See Also
Categories
Find more on Characters and Strings in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!