次の形式に一致するファイルから文字列を抽出しようとしています。
AP[1 番目のニブル].[2 番目のニブル].[3 番目のニブル]
例: AP30f7.0df6.e51c
以下のコードは、上記の文字列と同じ行を共有するすべてのデータをキャプチャします。上記の文字列と同じ行にある不要なデータのキャプチャを停止するにはどうすればよいですか?
while { [gets $fchan inline] >= 0} {
switch -regexp -- $inline {
AP([a-f0-9]{4}\.[a-f0-9]{4}\.[a-f0-9]{4}) {
append default_name $inline\n
}
}
}
アップデート:
回避策を見つけました。指定した条件に一致する各行は目的の文字列で始まるため、string rangeコマンドを使用して最初の 16 文字のみを抽出します。
while { [gets $fchan inline] >= 0} {
switch -regexp -- $inline {
AP([a-f0-9]{4}\.[a-f0-9]{4}\.[a-f0-9]{4}) {
set inline_mod [string range $inline 0 15]
append default_name $inline_mod\n
}
}
}