Регулярное выражение MATLAB со скобками

Учитывая массив ячеек строк:

CellArray={'(first)';'second';'x(third)';'four)'; '(...)'};

Я хотел бы получить следующий результат:

newCellArray={'first';'second';'x(third)';'four)';'...'};

то есть я хотел бы удалить круглые скобки, только если они находятся в начале и в конце слова...

Я хотел бы использовать что-то вроде:

newCellArray = regexprep(CellArray,expression,replace);

Но, к сожалению, у меня не получилось, несмотря на многочисленные попытки...


person Kevin    schedule 26.08.2016    source источник


Ответы (1)


Вы можете использовать начальную и конечную привязки с захват токена и обратная замена:

>> expr = '^\((.+)\)$';
>> CellArray = {'(first)';'second';'x(third)';'four)'; '(...)'};
>> newCellArray = regexprep(CellArray,expr,'$1')

newCellArray = 

    'first'
    'second'
    'x(third)'
    'four)'
    '...'
person TroyHaskin    schedule 26.08.2016