Вы можете выполнить замену и просто проверить, не изменилась ли длина новой строки (это предполагает, что исходная и замещающая строки имеют разную длину)
text_var = 'the whole big text';
n = numel( text_var );
text_var = strrep( text_var, 'replace me', 'with this' );
if numel( text_var ) == n
error( 'No replacements made' );
end
Если вы не можете сделать это предположение, выможет использовать strfind
, чтобы получить индексы строки.Это будет пустым, если не найден (так ошибка), или вы можете использовать его, чтобы вручную удалить строку.Особенно легко, поскольку вы утверждаете, что оно появится не более одного раза.
text_var = 'the whole big text';
removeStr = 'replace this';
k = strfind( text_var, removeStr );
if isempty( k )
error( 'No replacements made' );
end
text_var( k:k+numel(removeStr)-1 ) = []; % Remove string
Поскольку вы подходите только один раз, вы можете обнаружить, что regexp
быстрее, чем strfind
, так какВы можете использовать 'once'
аргумент regexp
, чтобы остановить его при первом совпадении
k = regexp( text_var, removeStr, 'once' ); % instead of using strfind