Training, Open Source computer languages
PerlPHPPythonMySQLApache / TomcatTclRubyJavaC and C++LinuxCSS 
Search for:
Home Accessibility Courses Diary The Mouth Forum Resources Site Map About Us Contact
For 2021 - online Python 3 training - see ((here)).

Our plans were to retire in summer 2020 and see the world, but Coronavirus has lead us into a lot of lockdown programming in Python 3 and PHP 7.
We can now offer tailored online training - small groups, real tutors - works really well for groups of 4 to 14 delegates. Anywhere in the world; course language English.

Please ask about private 'maintenance' training for Python 2, Tcl, Perl, PHP, Lua, etc.
extracting a pattern

Posted by neo (The Architect), 28 February 2006
Hi All,
After quite a while of not using a comp (for anything much productive) I am writing an expect script again.
What I would like to know here is how to get a matched pattern in a variable.

I am doing this
send "ls *.apfa\r"
expect -re *.apfa
set output $expect_out(buffer)
puts stdout $output

But the output (for the 'puts $output') I get is
ls *.apfa

I only want the "filename.apfa" from the output.
Any idea how I can get this?

Posted by technocrat2004 (technocrat2004), 28 February 2006
Can you try [a-zA-Z0-9]+.fpga in regexp...........

Posted by neo (The Architect), 28 February 2006
invalid command name "a-zA-Z0-9"

So i did this Code:
expect -re "{a-zA-Z0-9}+.apfa

but the puts stdout was blank

Posted by technocrat2004 (technocrat2004), 1 March 2006
Try out this ..................

set TelnetIp <ip>
spawn telnet $TelnetIp
expect "login:"
exp_send "test\r";
expect "Password:"
exp_send "redhat\r"
expect "]$";
exp_send "su -\r"
expect "Password:"
exp_send "password\r"
expect "#"
exp_send "ls *.<ext>\r";
expect "#"
set output $expect_out(buffer);
puts "This is the outpout $output "
set output1 $output
set output1 [string range $output1 [string first "\n" $output] [string last "\n" $output]]
puts "the change output is $output1---"
foreach line [split [string trim $output1] "\n"] {
       if {$line != " "} {
               set NoElmnts [llength $line]
               for {set i 0} {$i<$NoElmnts} {incr i} {
                       set check [lindex $line $i]
                       regexp {[a-zA-Z\0-9]+\.tcl} $check match;
                       lappend tcls $match;
set i 0;
while {$i<[llength $tcls]} {
       puts "[lindex $tcls $i]"

This page is a thread posted to the opentalk forum at and archived here for reference. To jump to the archive index please follow this link.

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2022: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 793803 • EMAIL: • WEB: • SKYPE: wellho