3

これらの文字列をから分割したい

CH1Avg
Ch2Avg
Ch3
Ch4Avg
Ch5
Ch6Avg
Chan7
Channel9
Ch010
Ch011Avg
Chann12Average

...まで...

Ch100AVG

私はそれらをそれらの構成部分に分割する必要があります

"Ch", ##, "Avg"

1番目と3番目のコンポーネントは、長さと形式が可変です。0から100までのさまざまな長さの整数である2番目のコンポーネントを使用して分割したいと思います。整数はゼロで埋められる場合とされない場合があります。

何かご意見は?私は()あまり成功せずに使用しようとしています。

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 に答える