3

我想将这些字符串从

CH1Avg
Ch2Avg
Ch3
Ch4Avg
Ch5
Ch6Avg
Chan7
Channel9
Ch010
Ch011Avg
Chann12Average

...取决于...

Ch100AVG

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

"Ch", ##, "Avg"

第 1 和第 3 分量具有可变长度和形式。我想使用第二个分量进行拆分,它是一个长度从 0 到 100 不等的整数。这个整数可能是零填充的,也可能不是零填充的。

有什么想法吗?我正在尝试使用()但没有太大成功。

4

2 回答 2

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'
于 2012-12-18T19:42:05.307 回答
0

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

于 2012-12-18T18:53:58.367 回答