2015-09-03 6 views
0

У меня есть строка, подобная этой в matlab.Matlab regex: заменить запятую и одну букву

str='42 21 S' 

Как я могу преобразовать его в форму?

str='42.21' 

То, что я пытался с regexprep() заключается в следующем:

regexprep(str,'S',''); 
regexprep(str,' ', '.') 

, который оставляет меня с этим

str='42.21.' 

ответ

2

Это должно сделать трюк, Matlab не велик со строками, хотя так вероятно, будут всевозможные способы сделать это, а не только с использованием regexp/regexprep:

regexprep(regexp('42 21 A','\d+\s\d+','match'),'\s','.') 

regexp удаляет пространство и S в конце, а затем regexprep заменяет пространство с периодом.

1

Для простых замен вам не нужно использовать regexprep. Вы можете использовать гораздо проще strrep:

str = strrep(str, ' S', ''); 
str = strrep(str, ' ', '.'); 

Если вам требуется более общие правила замены, вы должны использовать regexprep, как ответ Давида, например.

Смежные вопросы