regex - 在matlab中将一个字符串分成两部分

标签 regex matlab strsplit

输入字符串是:

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]

我想将这些字符串分成两部分,这样我就可以将第一个字符串和最后一个数字从中分开。我试过 strsplit() 但没有用。

最佳答案

这应该有效(假设最后总是有数字)

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

如果你想使用strsplit,你可以将它用作

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

关于regex - 在matlab中将一个字符串分成两部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36467932/

相关文章:

regex - 仅当整个匹配在 Perl 6 中成功时才在嵌套的正则表达式中执行代码块

正则表达式匹配括号之间的字符串

java - 正则表达式 - 提取不确定数量的命中

python - 通过 eclipse 交互式 matplotlib

R:使用 strsplit() 在两个字符之间拆分字符串

php - 从 PHP 文本中提取日期、时间和日期范围

matlab - 我们可以更新或扩展 varargin 吗?

matlab - 在 MATLAB 中取最大值的连续矩阵 block

regex - 为什么 strsplit 返回一个列表

r - 更改 R 中的列标题,交替使用空格和名称(对于 genalex 格式)