Remove "( )" from string words

조회 수: 7 (최근 30일)
Isay
Isay 2014년 10월 18일
댓글: Jan 2014년 10월 19일

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

채택된 답변

Robert Cumming
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
Jan 2014년 10월 19일
strrep operates on cell strings directly:
loopDB = strrep(db, '(', '');
loopDB = strrep(loopDB, ')', '');

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Alberto
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
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 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