假如文本是 "romvia*width*depth* 0 sramsp*width*depth* 0 sram2p*width*depth* 8" 需要用tcl正则表达式分别抓出对应类别的数量
时间: 2024-02-26 16:51:01 浏览: 109
你可以使用Tcl正则表达式来抓取对应类别的数量。以下是一个示例代码,可以帮助你实现这个功能:
```tcl
set text "romvia*width*depth* 0
sramsp*width*depth* 0
sram2p*width*depth* 8"
# 使用正则表达式匹配并抓取对应类别的数量
set romvia_count [regexp -inline -all {\bromvia\*\w+\*\w+\*\s+(\d+)} $text]
set sramsp_count [regexp -inline -all {\bsramsp\*\w+\*\w+\*\s+(\d+)} $text]
set sram2p_count [regexp -inline -all {\bsram2p\*\w+\*\w+\*\s+(\d+)} $text]
# 输出结果
puts "romvia count: [lindex $romvia_count 1]"
puts "sramsp count: [lindex $sramsp_count 1]"
puts "sram2p count: [lindex $sram2p_count 1]"
```
这段代码首先定义了一个包含文本的变量`text`。然后,使用`regexp`命令和正则表达式来匹配并抓取对应类别的数量。最后,通过`puts`命令输出结果。
请注意,这里使用了`\b`来匹配单词边界,`\w+`来匹配任意字母、数字或下划线的连续序列,`\s+`来匹配任意空白字符的连续序列,`(\d+)`来匹配一个或多个数字,并将其捕获为一个子匹配。
阅读全文