こちらが基本骨格です。ただし、正しい正規表現を使用して値を抽出してください;-)
はい、上記の Dorin の正規表現と一致すると、一度に 1 つの値が得られます。tokenMathworks のこの例のように を追加できます。サンプル:
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' 
上記のコードでは、実際にループする必要はなく、テキスト全体を 1 つの文字列として処理できます。できれば、文字列の制限に達しないことを願っています ...... しかし、ループしたい場合、またはループする必要がある場合は、ロディの正規表現と一致のみを使用した次のサンプル。
 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);