regexprep does not exactly what I want
Show older comments
Dear all,
I have the following cell array
Charge = {'OH-1'} {'KOH+0'} {'K+1'} {'I-1'} {'HI+0'} {'H3O+1'} {'H2O+0'}
I want to remove all information before the + and - signs. Therefore I tried the following:
regexprep(Charge,'[^-+].','');
which produces
{'-1'} {'0'} {'1'} {'1'} {'+0'} {'1'} {'0'}
This works well except in case of only one character in front of the minus sign (i.e. in case of I-1). In that case, the - sign is also deleted. The - signs are crucial to be included, the + signs not.
Any suggestions?
Thanks, Tim
Accepted Answer
More Answers (1)
>> regexprep(Charge,'^[^-+]*','')
ans =
'-1' '+0' '+1' '-1' '+0' '+1'
>> regexp(Charge,'[-+].+$','once','match')
ans =
'-1' '+0' '+1' '-1' '+0' '+1'
1 Comment
Daniel M
on 16 Oct 2019
This will handle edge cases better than my solution above. More robust.
Categories
Find more on Variables in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!