我的时间很短,特别想提取一个像下面这样的字符串。问题是标签的形式不是<a> data </a>
鉴于,

s = <em style="font-size:medium"> 5,888 </em>

如何在Matlab中提取5888?

最佳答案

你会发现有用的信息here,或here,或here,所有这些都是google的第一页结果,比在这里提问要快。
无论如何,快速-不干净的方式:你可以在<>符号上过滤:

>> s = '<em style="font-size:medium"> 5,888 </em> <sometag> test </sometag>'
>> a = regexp(s, '[<>]');
>> s( cell2mat(arrayfun(@(x,y)x:y, a(2:2:end-1)+1, a(3:2:end)-1, 'uni',false)) )

ans =

   5,888 test

或者,稍微更健壮和更干净一点,用空替换任何标记(包括标记)之间的所有内容:
>> s = regexprep(s, '<.*?>', '')
ans =

   5,888 test

10-06 15:52