Для преобразования определенных слов в нижний регистр необходимо выполнить два шага.
regexprep преобразует слова, которые находятся либо в начале строки, либо после полной остановки и пробела, в нижний регистр.
В функции regexprep
,мы используем следующий шаблон:
(?<=^|\. )([A-Z])
, чтобы указать, что:
(?<=^|\. )
Мы хотим утверждать, что перед словом интереса либо начало строки (^
) или (|
) найдена полная остановка (.
), за которой следует пробел.Этот тип конструкции называется lookbehind . ([A-Z])
Эта часть выражения соответствует и фиксирует (сохраняет совпадение) заглавную букву (A-Z
).
Компонент ${lower($0)}
в регулярном выражении называется динамическим выражением и заменяет содержимое захваченной группы (([A-Z])
) на нижний регистр.Этот синтаксис специфичен для языка MATLAB.
Вы можете проверить поведение вышеприведенного выражения здесь .
После выполнения преобразований в нижний регистр regexp находит все вхождения одну или несколько цифр, строчных и прописных букв.
Шаблон [a-zA-Z0-9]+
соответствует строчным буквам, заглавным буквам и цифрам.
Вы можете проверить поведение этого регулярного выражения здесь .
text = fileread('abc.txt')
data = {regexp(regexprep(text,'(?<=^|\. )([A-Z])','${lower($0)}'),'[a-zA-Z0-9]+','match')'}
>>data{1}
13×1 cell array
{'his' }
{'name' }
{'is' }
{'Donald' }
{'and' }
{'he' }
{'likes' }
{'burger' }
{'on' }
{'December'}
{'11' }
{'he' }
{'married' }