Matlab:带变量的regexprep

时间:2015-01-05 10:36:42

标签: regex matlab regexp-replace

我有一个数组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'};

1 个答案:

答案 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'