我的时间很短,特别想提取一个像下面这样的字符串。问题是标签的形式不是<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