这是基本骨架。但请确保使用正确的正则表达式来提取值;-)
是的,使用上述 Dorin 的正则表达式并匹配您一次得到一个值。您可以token
根据这个示例从 mathworks 添加一个。样本:
str = ['if <code>A </code> == x<sup>2 </sup>, ' ... '<em>disp(x) </em>']
str = if <code>A </code> == x<sup>2 </sup>, <em>disp(x) </em>
expr = '<(\w+).*?>.*?</\1>';
[tok mat] = regexp(str, expr, 'tokens', 'match');
tok{:}
ans = 'code'
ans = 'sup'
ans = 'em'
在上面的代码中,您实际上并不需要循环并且可以将整个文本块作为一个字符串处理,希望不会达到任何字符串限制......但是如果您想循环,或者如果您需要循环,您可以使用以下示例与 Rody 的正则表达式和仅匹配。
fid = fopen('data.txt');
dataText = fgetl(fid);
while ~feof(fid)
ldata = textscan(dataText,'*%d#*');
X = (ldata, '#[A-z]*', 'match')
Cellarray = X{1}
end
Disp(X)
fclose(fid);