Remove "( )" from string words
3 次查看(过去 30 天)
显示 更早的评论
Hi I need to Remove "()" from any word in DataBase.
My Database(cell) have string words such as:
'NEW' 'May' '(AFP)' 'US' 'prosecutors' 'on' 'Friday' 'unveiled' 'indictment' 'including' 'charges' 'of' 'murder' 'and' 'loan' 'sharking' 'against' . . . .
So, I need to Remove "(" and ")" from (AFP). because My word should be : AFP
0 个评论
采纳的回答
Robert Cumming
2014-10-19
regexp is very compact and powerful - however it can be a bit slow.
If speed is an issue a simple for loop and strrep can sometimes be faster:
db = { 'NEW' 'May' '(AFP)' 'US' 'prosecutors' 'on' };
pattern = '\(|)';
tic
newdb = regexprep(db, pattern, '');
toc
tic
loopDB = db;
for ii=1:length(db)
loopDB{ii} = strrep ( db{ii}, '(', '' );
loopDB{ii} = strrep ( loopDB{ii}, ')', '' );
end
toc
isequal ( newdb, loopDB )
Elapsed time is 0.002665 seconds.
Elapsed time is 0.000087 seconds.
ans =
1
1 个评论
Jan
2014-10-19
strrep operates on cell strings directly:
loopDB = strrep(db, '(', '');
loopDB = strrep(loopDB, ')', '');
更多回答(1 个)
Alberto
2014-10-19
You should use regexprep to replace anything that matches with parenthesis with an empty string; the pattern that matches any parenthesis shoul be:
pattern = '(\(|\))';
Its necessary to scape ( or ) using \( or \). See the examples:
>> texto = '(AFP)';
regexprep(texto, '(\(|\))', '')
ans =
AFP
>> texto = {'(AFP)','(cro'};
regexprep(texto, '(\(|\))', '')
ans =
'AFP' 'cro'
1 个评论
Guillaume
2014-10-19
Note that you don't need to surround the alternation with brackets and you don't need to escape the closing bracket, so this simpler pattern would work just as well:
pattern = '\(|)';
newdb = regexprep(db, pattern, '');
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Characters and Strings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!