2016-04-07 238 views
2

输入字符串是:将一个字符串分解成两个部分在MATLAB

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()但它没有帮助。

+0

什么你的正则表达式?同时发布您的代码。 –

回答

2

试着在-上分割,在字符串末尾出现在数字之前。

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

说明:

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

Regex101 Demo

5

这应该工作(假设数总是在最后)

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

如果你想使用strsplit你可以使用它作为

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

为了更好地使用正则表达式而不是接受的答案。 –

+0

@ArleighHix谢谢.. :) – rock321987

相关问题