具有不同整数长度的正则表达式

时间:2012-12-18 18:23:44

标签: regex matlab

我希望从

拆分这些字符串
CH1Avg
Ch2Avg
Ch3
Ch4Avg
Ch5
Ch6Avg
Chan7
Channel9
Ch010
Ch011Avg
Chann12Average

......直到......

Ch100AVG

我需要将它们分成他们的组成部分

"Ch", ##, "Avg"

第一和第三组件具有可变长度和形式。我想使用第二个分量进行分割,第二个分量是一个从0到100变化长度的整数。整数可以填充也可以不填零。

有什么想法?我试图使用()但没有取得多大成功。

2 个答案:

答案 0 :(得分: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'

答案 1 :(得分:0)

(\d+)上拆分。括号确保您分割的数字也将成为数组的一部分。

相关问题