1

私は配列を持っていますa:比較され、配列内の空の文字に置き換えられる識別された単語のリストbnewB結果です。

の値はa、入力ファイルによって異なる場合があります。
使ってみましregexprepたが、うまくいきません。

例えば:

a = {'apple';'banana';'orange'};     % a might be also ‘watermelon’, ‘papaya’ etc
b = {'1 apple = 2 kiwi';'1 fig = 1 banana';'1 orange = 3 strawberry'};
newB = {'  = 2 kiwi';'1 fig =  ';'  = 3 strawberry'};
4

1 に答える 1

0

あなたの例から、特別な単語と数字を削除したいようです。これに適切な正規表現は (for word = 'apple'):'\d+ apple'です。aを使用して、 のすべての単語から正規表現を作成しsprintfます。

re = sprintf('\\d+ %s|',a{:}); %// adding | operator to select between expressions
re(end)=[]; %// discard the last '|'

結果の正規表現は

re =
'\d+ apple|\d+ banana|\d+ orange'

実際の交換:

newB = regexprep(b,re,'')

結果として

newB = 
' = 2 kiwi'
'1 fig = '
' = 3 strawberry'
于 2015-01-05T11:41:25.820 に答える