delete special characters (\ / : * " < > |) in char

71 views (last 30 days)
Hi. I need to transform these lines:
name_1 = '<Hello World>';
name_2 ='File numb: 5';
into these:
name_1 = 'Hello World';
name_2 ='File numb 5';
In general, I would like to delete, if they are present, within the name all 8 symbols: \ / : * " < > |

Accepted Answer

Matt J
Matt J on 25 Jun 2023
One way:
name_1 = '<Hello World>';
pat=num2cell('\/:*"<>|');
name_1=erase(name_1,pat)
name_1 = 'Hello World'

More Answers (3)

Matt J
Matt J on 25 Jun 2023
Edited: Matt J on 25 Jun 2023
One way:
name_1 = '<Hello World>';
tf=ismember(name_1, '\/:*"<>|');
name_1(tf)=''
name_1 = 'Hello World'
  1 Comment
Alberto Acri
Alberto Acri on 26 Jun 2023
Thank you for your reply. It is as good as the others' answer.

Sign in to comment.


Jan
Jan on 25 Jun 2023
name_1 = '<Hello World>';
name_1 = erase(name_1, ["<", ">", "\", "/", ":", "*", """", "|"])
name_1 = 'Hello World'
  1 Comment
Alberto Acri
Alberto Acri on 26 Jun 2023
Thank you for your reply. It is as good as the others' answer.

Sign in to comment.


DGM
DGM on 25 Jun 2023
Edited: DGM on 25 Jun 2023
You could also use regexprep(), though perhaps using erase() is more convenient.
% using numbered variables only makes processing more difficult
% instead of embedding implicit indices in the names, just use an array
names = {'<Hello World>';
'File numb: 5';
'1\|2/>3:<4*"5"*6<:7>/8|\9'};
% replace any instance of the listed characters with ''
names = regexprep(names,'[\\/:*"<>|]*','')
names = 3×1 cell array
{'Hello World'} {'File numb 5'} {'123456789' }
  1 Comment
Alberto Acri
Alberto Acri on 26 Jun 2023
Thank you for your reply. It is as good as the others' answer.

Sign in to comment.

Products


Release

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!