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

2 visualizaciones (últimos 30 días)
Bob Whiley
Bob Whiley el 3 de Mzo. de 2015
Comentada: Joseph Cheng el 3 de Mzo. de 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.'

Respuestas (1)

Guillaume
Guillaume el 3 de Mzo. de 2015
Editada: Guillaume el 3 de Mzo. de 2015
str = 'Hello, my name is bob, my age is 43.';
regexprep(str, 'bob|age', '***')
  1 comentario
Joseph Cheng
Joseph Cheng el 3 de Mzo. de 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 "*".

Iniciar sesión para comentar.

Categorías

Más información sobre Characters and Strings en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by