Replace group of special character with a single character

2 次查看(过去 30 天)
Hello everyone,
I have a question related to regular expression. Let's say I have the following string:
str = vertcat(...
"Whose woods |||||| these are I think I know.", ...
"His house is in the village though;", ...
"He will not see ||| me stopping here", ...
"To '|' watch his woods fill up with snow.")
And I am looking for a new string as in the following:
str = vertcat(...
"Whose woods X these are I think I know.", ...
"His house is in the village though;", ...
"He will not see X me stopping here", ...
"To 'X' watch his woods fill up with snow.")
I have done this task using some hard code to find the '|' clusters and replacing by 'X'
ind = strfind(str,'|')
% ...
However, I have been checking regexp and regexprep, and I believe this is doable using one of this functions in a single line.
  2 个评论
Erivelton Gualter
Erivelton Gualter 2020-4-15
By the way, I also can use regexprep to replace all '|', by 'X', but I would like to replace a group of '|' by X:
expression = '[|]';
replace = 'X';
newStr = regexprep(str,expression,replace)
which returns:
str = vertcat(...
"Whose woods XXXXXX these are I think I know.", ...
"His house is in the village though;", ...
"He will not see XXX me stopping here", ...
"To 'X' watch his woods fill up with snow.")

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2020-4-15
regexprep(str, '\|+', 'X')

更多回答(0 个)

类别

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