给定一个字符串元胞数组,我想构建一个 regexprep 规则,以便将不同的字符串类型替换为某个数字。 IE:
my_cell = {'ok', 'ok', 'bad', 'broken', 'bad', 'broken', 'ok'};
我知道如何一一替换每个字符串类型,即:
my_cell = regexprep(my_cell,'ok$','1');
但理想情况下,我想建立一个规则,以便
ok
将替换为 1
, bad
将替换为 0
, broken
将替换为 -1
。关于如何做到这一点的任何提示?
最佳答案
这里有文档: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'});
(未经测试)
关于regex - matlab regexprep 具有多个数字的多个字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11917000/