Change all indices of a word in a string to '*'.

2 views (last 30 days)
What is the best method to change all indices of a certain word in a string to '*'.
Like if my string were 'Hello, my name is bob, my age is 43.' And I want to change bob and age so it outputs 'Hello, my name is ***, my *** is 43.'

Answers (1)

Guillaume
Guillaume on 3 Mar 2015
Edited: Guillaume on 3 Mar 2015
str = 'Hello, my name is bob, my age is 43.';
regexprep(str, 'bob|age', '***')
  1 Comment
Joseph Cheng
Joseph Cheng on 3 Mar 2015
to expand on Guillaume's answer, since names are probably not going to stay 3 char long.
you can get the position and items using regexp:
filters = {'bob'; 'age'}';
teststr = 'Hello, my name is bob, my age is 43.';
regpattern = sprintf(strjoin(filters, '|'));
matches = regexp(teststr, regpattern, 'match')
pos= regexp(teststr, regpattern)
then knowing what was matched and where the positions are you can replace those index positions with "*".

Sign in to comment.

Categories

Find more on Characters and Strings 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!