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 回答