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

3 次查看(过去 30 天)
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.'

回答(1 个)

Guillaume
Guillaume 2015-3-3
编辑:Guillaume 2015-3-3
str = 'Hello, my name is bob, my age is 43.';
regexprep(str, 'bob|age', '***')
  1 个评论
Joseph Cheng
Joseph Cheng 2015-3-3
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 "*".

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by