如下文字文件:
1:1/1988 'XX'
1:2/1988 'BB'
...
1:1987/1988 'Target1'
1:1988/1988 'XXX'
2:1/1785 'XDS'
...
2:1784/1785 'Target2'
...
如何在tcl中使用regexp获取 Target1 和 Target2 ? 非常感谢。
对不起,伙计们,我认为你误解了我的问题。
我的观点是\ d +: n-1 / n '目标'。
有没有办法解决这个问题?
我用它来获取目标。
if {[regexp {\d+:(\d+)/(\d+) +'(\w+)'} $str vv Num1 Num2 Target] } {
if {[expr $Num2 - $Num1]==1} {
GET TARGET...
}
}
我只是想知道是否有任何聪明的方法来获取Target ???
再次感谢。
答案 0 :(得分:1)
要在TCL中转义asterisk(*)
,您需要\\
要从字符串中提取子字符串,您需要在{regexp中{{1}} group capturing
试试这个,
(.*)
从整个文件中提取;# For example
set var "1:1987/1988 '**Target1**'"
regexp ".* \'\\*\\*(.*)\\*\\*\'" $var match match1
puts $match1 ;# Gives Output Target1
substring
答案 1 :(得分:0)