Greg Lindstrom wrote:

I have a file generated by an HP-9000 running Unix containing form feeds signified by ^M^L. I am trying to scan for the linefeed to signal certain processing to be performed but can not get the regex to "see" it. Suppose I read my input line into a variable named "input"

The following does not seem to work...
input = input_file.readline()
if re.match('\f', input): print 'Found a formfeed!'
else: print 'No linefeed!'

I also tried to create a ^M^L (typed in as <ctrl>Q M <ctrlQ> L) but that gives me a syntax error when I try to run the program (re does not like the control characters, I guess). Is it possible for me to pull out the formfeeds in a straightforward manner?

What's happening is that you're using .match, so you're only checking for matches at the _start_ of the string, not anywhere within it.


It's easier than you think actually; you're just looking for substrings, so searching with .find on strings is probably sufficient:

        if line.find('\f') >= 0: ...

If you want to look for ^M^L, that'd be '\r\f':

        if line.find('\r\f') >= 0: ...

If you want to keep a running count, you can use .count, which will count the number of substrings in the line.

--
Erik Max Francis && [EMAIL PROTECTED] && http://www.alcyone.com/max/
San Jose, CA, USA && 37 20 N 121 53 W && AIM erikmaxfrancis
  I would have liked to have seen Montana.
  -- Capt. Vasily Borodin
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to