delete elements from a cell array

2 次查看(过去 30 天)
Hi!
I have a cell array b (attached); in each cell of b I have an expression like this: 'Weather booming Chilli Relax https://t.co/pwp00Ndw3d' or expressions with @,#,$. I want to delete from these expressions all the characters like @,#,$ and the links like https://t.co/pwp00Ndw3d.
Example: if I have 'Weather booming @Chilli Relax# https://t.co/pwp00Ndw3d', I will want it becames 'Weather booming Chill Relax'
Can you help me? thanks
  3 个评论
elisa ewin
elisa ewin 2017-6-22
sorry, now I re-write the question
Jan
Jan 2017-6-22
编辑:Jan 2017-6-22
Weather booming Chilli Relax https://t.co/pwp00Ndw3d
This looks strange. It reminds me to Google: Britney Spears Instagram account used by hackers.
Perhaps I'm too distrustful, but I've modified the URL slightly to be sure. This does not change the core of the question or the answer. Sorry, these are hard times in the world wide web. Please do not take this personally.

请先登录,再进行评论。

采纳的回答

Andrei Bobrov
Andrei Bobrov 2017-6-22
regexprep(b,'[$#@]|\<https:/+\S*\>','')
  8 个评论
Andrei Bobrov
Andrei Bobrov 2017-6-22
编辑:Andrei Bobrov 2017-6-22
Hi Jan! Yes! "Russian rocket". :)
regexprep(b,'\<[^A-Za-z \?\,]|https:/+\S*\>','')

请先登录,再进行评论。

更多回答(1 个)

Jan
Jan 2017-6-22
编辑:Jan 2017-6-22
S = 'Weather booming Chilli Relax https://t.co/pwp00Ndw3d';
C = strsplit(S, ' ');
C(contains(C, '/')) = []; % Or how you identify a link
for iC = 1:numel(C)
aC = C{iC};
C{iC} = aC(isstrprop(aC, 'alphanum'));
end
Result = sprintf('%s ', C{:});
Result(end) = [];
The command contains was introduced in R2016b. If you have an older version, use:
function Tf = contains(C, Patterm)
Tf = ~cellfun('isempty', strfind(C, Pattern));
end

类别

Help CenterFile Exchange 中查找有关 File Name Construction 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by