matlab regexprep具有多个数字的多个字符串

时间:2012-08-11 19:26:21

标签: regex matlab

给定一个字符串的单元格数组,我想构建一个regexprep规则,以便将不同的字符串类型替换为某个数字。即:

my_cell = {'ok', 'ok', 'bad', 'broken', 'bad', 'broken', 'ok'};

我知道如何逐个替换每个字符串类型,即:

my_cell = regexprep(my_cell,'ok$','1');

但理想情况下,我想构建一条规则,以便ok替换为1bad将替换为0broken将替换为-1

有关如何执行此操作的任何提示?

2 个答案:

答案 0 :(得分:4)

怎么样:

>> my_cell = regexprep(my_cell,{'ok$','bad$','broken$'},{'1','0','-1'});

答案 1 :(得分:3)

这里有文档:http://www.mathworks.co.uk/help/techdoc/ref/regexprep.html

它的语法为:s = regexprep('str', 'expr', 'repstr')

它还说:“如果expr和repstr都是字符串的单元格数组,那么expr和repstr必须包含相同数量的元素,并且regexprep将每个repstr元素与其在expr中的匹配元素配对。”

因此你可以尝试这样的事情:

my_cell = regexprep(my_cell, {'^ok$', '^bad$', '^broken$'}, {'1', '0', '-1'});

(未测试的)