Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #8329

Re: How do you print a string after it's been searched for an RE?

Date 2011-06-23 16:47 -0500
From "Thomas L. Shinnick" <tshinnic@prismnet.com>
Subject Re: How do you print a string after it's been searched for an RE?
References <c4486911-f2cb-4e0e-a93c-3d6ff7e302e9@16g2000yqy.googlegroups.com>
Newsgroups comp.lang.python
Message-ID <mailman.342.1308865647.1164.python-list@python.org> (permalink)

Show all headers | View raw


There is also
       print(match_obj.string)
which gives you a copy of the string searched.  See end of section 
6.2.5. Match Objects

At 02:58 PM 6/23/2011, John Salerno wrote:
>After I've run the re.search function on a string and no match was
>found, how can I access that string? When I try to print it directly,
>it's an empty string, I assume because it has been "consumed." How do
>I prevent this?
>
>It seems to work fine for this 2.x code:
>
>import urllib.request
>import re
>
>next_nothing = '12345'
>pc_url = 'http://www.pythonchallenge.com/pc/def/linkedlist.php?
>nothing='
>pattern = re.compile(r'[0-9]+')
>
>while True:
>     page = urllib.request.urlopen(pc_url + next_nothing)
>     match_obj = pattern.search(page.read().decode())
>     if match_obj:
>         next_nothing = match_obj.group()
>         print(next_nothing)
>     else:
>         print(page.read().decode())
>         break
>
>But when I try it with my own code (3.2), it won't print the text of
>the page:
>
>import urllib.request
>import re
>
>next_nothing = '12345'
>pc_url = 'http://www.pythonchallenge.com/pc/def/linkedlist.php?
>nothing='
>pattern = re.compile(r'[0-9]+')
>
>while True:
>     page = urllib.request.urlopen(pc_url + next_nothing)
>     match_obj = pattern.search(page.read().decode())
>     if match_obj:
>         next_nothing = match_obj.group()
>         print(next_nothing)
>     else:
>         print(page.read().decode())
>         break
>
>P.S. I plan to clean up my code, I know it's not great right now. But
>my immediate goal is to just figure out why the 2.x code can print
>"text", but my own code can't print "page," which are basically the
>same thing, unless something significant has changed with either the
>urllib.request module, or the way it's decoded, or something, or is it
>just an RE issue?
>
>Thanks.

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

How do you print a string after it's been searched for an RE? John Salerno <johnjsal@gmail.com> - 2011-06-23 12:58 -0700
  Re: How do you print a string after it's been searched for an RE? Ian Kelly <ian.g.kelly@gmail.com> - 2011-06-23 14:47 -0600
    Re: How do you print a string after it's been searched for an RE? John Salerno <johnjsal@gmail.com> - 2011-06-23 14:14 -0700
  Re: How do you print a string after it's been searched for an  RE? "Thomas L. Shinnick" <tshinnic@prismnet.com> - 2011-06-23 16:47 -0500
    Re: How do you print a string after it's been searched for an RE? John Salerno <johnjsal@gmail.com> - 2011-06-23 15:02 -0700

csiph-web