pexpect regex help

jonathan.sabo at gmail.com jonathan.sabo at gmail.com
Wed Feb 21 18:15:33 EST 2007


On Feb 21, 6:13 pm, jonathan.s... at gmail.com wrote:
> I have a pexpect script to walk through a cisco terminal server and I
> was hoping to get some help with this regex because I really suck at
> it.
>
> This is the code:
>
>         index = s.expect(['login: ', pexpect.EOF, pexpect.TIMEOUT])
>         if index == 0:
>             m = re.search('((#.+\r\n){20,25})(\s.*)',
> s.before)                  #<---------- MY PROBLEM
>             print m.group(3),
>             print ' %s %s' % (ip[0], port)
>             s.send(chr(30))
>             s.sendline('x')
>             s.sendline('disco')
>             s.sendline('\n')
>         elif index == 1:
>             print s.before
>         elif index == 2:
>             print
>             print '%s %s FAILED' % (ip[0], port)
>             print 'This host may be down or locked on the TS'
>             s.send(chr(30))
>             s.sendline('x')
>             s.sendline('disco')
>             s.sendline('\n')
>
> This is attempting to match the hostname of the connected host using
> the output of a motd file which unfortunately is not the same
> everywhere...  It looks like this:
>
> #########################################################################
> #       This system is the property
> of:                                 #
> #
> #
> #                DefNet
> #
> #
> #
> #       Use of this system is for authorized users
> only.                #
> #       Individuals using this computer system without authority, or
> in #
> #       excess of their authority, are subject to having all of
> their   #
> #       activities on this system monitored and recorded by
> system      #
> #
> personnel.                                                      #
> #
> #
> #       In the course of monitoring individuals improperly using
> this   #
> #       system, or in the course of system maintenance, the
> activities  #
> #       of authorized users may also be
> monitored.                      #
> #
> #
> #       Anyone using this system expressly consents to such
> monitoring  #
> #       and is advised that if such monitoring reveals
> possible         #
> #       evidence of criminal activity, system personnel may provide
> the #
> #       evidence of such monitoring to law enforcement
> officials.       #
> #########################################################################
>
> pa-chi1 console login:
>
> And sometimes it looks like this:
>
> #########################################################################
> #       This system is the property
> of:                                 #
> #
> #
> #                DefNet
> #
> #
> #
> #       Use of this system is for authorized users
> only.                #
> #       Individuals using this computer system without authority, or
> in #
> #       excess of their authority, are subject to having all of
> their   #
> #       activities on this system monitored and recorded by
> system      #
> #
> personnel.                                                      #
> #
> #
> #       In the course of monitoring individuals improperly using
> this   #
> #       system, or in the course of system maintenance, the
> activities  #
> #       of authorized users may also be
> monitored.                      #
> #
> #
> #       Anyone using this system expressly consents to such
> monitoring  #
> #       and is advised that if such monitoring reveals
> possible         #
> #       evidence of criminal activity, system personnel may provide
> the #
> #       evidence of such monitoring to law enforcement
> officials.       #
> #########################################################################
> pa11-chi1 login:
>
> The second one works and it will print out pa11-chi1  but when there
> is a space or console is in the output it wont print anything or it
> wont match anything...    I want to be able to match just the hostname
> and print it out.
>
> Any ideas?
>
> Thanks,
>
> Jonathan



It is also posted here more clearly and formatted as it would appear
on the terminal:  http://www.pastebin.ca/366822




More information about the Python-list mailing list