【问题标题】:matlab regexprep multiple strings with multiple numbersmatlab regexprep 具有多个数字的多个字符串
【发布时间】:2012-08-12 03:54:38
【问题描述】:

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

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

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

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

但理想情况下,我想建立一个规则,这样ok 将被替换为1bad 将被替换为0broken 将被替换为-1

关于如何做到这一点的任何提示?

【问题讨论】:

    标签: regex matlab


    【解决方案1】:

    怎么样:

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

    【讨论】:

    • 我没有添加^,因为在这种情况下不需要它。
    【解决方案2】:

    这里有文档: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'});
    

    (未测试)

    【讨论】:

    • 这个例子不起作用,因为在第一个正则表达式之后,您将 'broken' 更改为 'br1ken'。
    猜你喜欢
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    • 2018-04-11
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    相关资源
    最近更新 更多