#string #matlab #erase
#строка #matlab #стереть
Вопрос:
Добрый день.
Здесь у меня есть строка 2×1:
A = ["CHAPTER 1. Random info in middle one, Random info still continues. 1";...
"CHAPTER 2. Random info in middle two. Random info still continues. 1"];
Как я могу удалить «CHAPTER #», а также последнее число и пробел в конце пробела? Вот моя попытка:
%PlanA
for n=1:2
% Delete "Chapter Nr"
A(n,1) = erase(A,'(CHAPTER d)');
% Delete last nr 1 at end
A(n,1) = erase(A,'d');
end
%PlanB
A(strcmp(A, 'CHAPTER d')) = []
Я понятия не имею, почему это не работает?
Помощь приветствуется, спасибо!
Комментарии:
1. Из
erase()
документации : »newStr = erase(str,match)
удаляет все вхожденияmatch
instr
» . «понятия не имею, почему это не работает? » Потому'Chapter d'
что ни в одной из ваших строк нет вхождений.
Ответ №1:
Для этого вы можете использовать regexprep:
regexprep(A,'CHAPTER d . (. ) d$','$1')
ans =
2×1 string array
"Random info in middle one, Random info still continues."
"Random info in middle two. Random info still continues."