How to replace a single word in a string with multiple row string?
16 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Math
el 10 de Dic. de 2014
Comentada: Guillaume
el 10 de Dic. de 2014
Hello,
I am trying to replace a single word/token in a string variable with a string containing multiple rows of words. I get the following error using regexprep function :
Error using regexprep The 'REPLACE' input must be a one-dimensional array of char or cell arrays of strings.
I tried using strrep function as well. I get the following error for it :
Error using strrep Input strings must have one row.
A = strrep(B,'Keyword',C);
A = regexprep(B,'Keyword',C);
I am trying to replace Keyword in String B with C. C has multiple rows of words in it.
I searched the forum for similar questions. Did not find any.
How do i prevent this error? Please help.
1 comentario
Respuesta aceptada
Guillaume
el 10 de Dic. de 2014
This is possibly what you want:
B = 'Some string with a Keyword in it';
C = {'foo', 'bar', 'baz'};
A = cellfun(@(rep) strrep(B, 'Keyword', rep), C, 'UniformOutput', false)
If your C is a 2D char array and you also want a 2D char array as an output
B = 'Some string with a Keyword in it';
C = ['foo';'bar';'baz'];
A = cell2mat(cellfun(@(rep) strrep(B, 'Keyword', rep), num2cell(C, 2), 'UniformOutput', false))
2 comentarios
Guillaume
el 10 de Dic. de 2014
It is much simpler to work with cell arrays of strings than 2D char arrays. Most string functions will happily work on multiple strings as long as they're in a cell array. A cell array has the added advantage that your strings don't have to be all the same length.
Use num2cell to convert a 2D array to cell, and cell2mat to convert back.
Anyway
B=['A string with Keyword'; 'Another Keyword abcde'];
C=['foo';'bar';'baz'];
Bascell = num2cell(B, 2);
Cascell = num2cell(C, 2);
Aascell = strrep(Bascell, 'Keyword', strjoin(Cascell));
A = cell2mat(Aascell)
Ver también
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!