在matlab中将字符串拆分为两部分

时间:2016-04-07 06:07:25

标签: regex matlab strsplit

输入字符串是:

let d = cards.reduce([:]) { (d, card) -> [Int:Int] in
    var d = d
    let s = d[card.compartment] ?? 0
    d[card.compartment] = s + 1
    return d
}

输出应为:

InputStr1 = 'this-is-a-boy-5';
InputStr2 = 'this23-is-a-boy-10';
InputStr3 = 'this-41';

我想将这些字符串分成两部分,这样我就可以将第一个字符串和最后一个字符分开。我试过Output1 = ['this-is-a-boy'] [5] Output2 = ['this23-is-a-boy'] [10] Output3 = ['this'] [41] ,但它没有帮助。

2 个答案:

答案 0 :(得分:5)

这应该有用(假设总有最后的数字)

data = 'this-is-a-boy-5'
toks = regexp(data, '(.*)-(\d+)$', 'tokens');
display(toks)

如果您想使用strsplit,可以将其用作

toks = strsplit(data, '-(?=\d+$)', 'DelimiterType', 'RegularExpression');
display(toks)

答案 1 :(得分:2)

尝试拆分字符串末尾的数字前面显示的-

正则表达式: -(?=\d+$)

<强>解释

    如果数字在字符串末尾,则
  • (?=\d+$)向前看。并匹配之前的-。你可以拆分。

<强> Regex101 Demo