MATLAB: Как удалить символы из строки 2×1 или nx1?

#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 in str » . «понятия не имею, почему это не работает? » Потому '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."