我正在尝试从与以下格式匹配的文件中提取字符串:
AP[1st nibble].[2nd nibble].[3rd nibble]
例如: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
}
}
}