2016-04-07 112 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

相關問題