2012-12-18 66 views
3

我想從正則表達式具有不同的整數長度

CH1Avg 
Ch2Avg 
Ch3 
Ch4Avg 
Ch5 
Ch6Avg 
Chan7 
Channel9 
Ch010 
Ch011Avg 
Chann12Average 

...高達拆分這些字符串...

Ch100AVG 

我需要把它們分割成自己的consituent部分

"Ch", ##, "Avg" 

第一和第三部分的長度和形式都是可變的。我想使用第二個分量進行分割,第二個分量是一個從0到100不等的整數。整數可以是或不是零填充。

有什麼想法?我試圖用()沒有太大的成功。

回答

2

向該字符串分割成構成部件的話,建議使用命名令牌方便:

strCell = {'CH1Avg' 
'Ch2Avg' 
'Ch3' 
'Ch4Avg' 
'Ch5' 
'Ch6Avg' 
'Chan7' 
'Channel9' 
'Ch010' 
'Ch011Avg' 
'Chann12Average'} 

out = regexp(strCell,'(?<channelName>\D+)(?<channelNum>\d+)(?<channelType>\w*)','names') 
out = [out{:}]; 

out(end) 
ans = 
    channelName: 'Chann' 
    channelNum: '12' 
    channelType: 'Average' 
0

拆分(\d+)。括號確保您分解的數字也將成爲數組的一部分。

相關問題