Это обрабатывает несколько слов имен ( Сан-Франциско , Ньюкасл-апон-Тайн ), включая тире ( Кармель-у моря ), апострофы ( L'Aquila ) или точек , за которыми следует пробел ( St. Gallen ). Предполагается, что имена разделяются любым символом, кроме букв, тире, пробела или апострофа, и что цифры никогда не заканчиваются точкой:
result = strtrim(regexp(myText, '([a-zA-Z\- '']|\. )+', 'match'));
Пример:
>> myText = 'San Francisco 2.7 Newcastle upon Tyne 3.8 Carmel-by-the-sea 0.9 L''Aquila 2.8 St. Gallen';
>> result = strtrim(regexp(myText, '([a-zA-Z\- '']|\. )+', 'match'))
result =
1×5 cell array
{'San Francisco'} {'Newcastle upon Tyne'} {'Carmel-by-the-sea'} {'L'Aquila'} {'St. Gallen'}