我有一个数组a
:要比较的已识别单词列表,并由数组b
中的空字符替换。结果是newB
。
a
的值可能因输入文件而异
我正在尝试使用regexprep
,但效果不佳。
e.g:
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'};
答案 0 :(得分: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'