Write a function to extracts number between 2 letters?
显示 更早的评论
I am trying to write a MATLAB code that extracts a 3 digit number in between two letters. the tricky part is that the letter after the number could be either (s)or(h)
E.g 1 the filename is 'rfc_f123sars.tif' this should extract 123 which is between _f and s E.g 2 the filename is 'rfc_f456hars.tif' this should extract 456 which is between _f and h Thanks :)
采纳的回答
更多回答(2 个)
Walter Roberson
2016-9-7
regexp(filename, '\d\d\d', 'match')
or if you want to be more secure,
regexp(filename, '(?<=[A-Za-z])\d\d\d(?=[A-Za-z])', 'match')
nstr = regexp(filename, '(?<=_f)\d+(?=(s|h))', 'match', 'once');
if isempty(nstr)
n = 0;
else
n = str2double(nstr);
end
The regular expression matches a sequence of one or more digit, preceded by _f, followed by h or s.
类别
在 帮助中心 和 File Exchange 中查找有关 Characters and Strings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!