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

1 vue (au cours des 30 derniers jours)
Bob Whiley
Bob Whiley le 3 Mar 2015
Commenté : Joseph Cheng le 3 Mar 2015
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.'

Réponses (1)

Guillaume
Guillaume le 3 Mar 2015
Modifié(e) : Guillaume le 3 Mar 2015
str = 'Hello, my name is bob, my age is 43.';
regexprep(str, 'bob|age', '***')
  1 commentaire
Joseph Cheng
Joseph Cheng le 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 "*".

Connectez-vous pour commenter.

Catégories

En savoir plus sur Characters and Strings dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by