[EMAIL PROTECTED] wrote: > Hi, > > I'm having some problems with basic RE in python. I was wondering > whether > somebody could provide a hint on what's going wrong with the following > script. Comments are included. > > TIA. > -myself > > >>python2.3 > > Python 2.3.4 (#1, Nov 18 2004, 13:39:30) > [GCC 3.2.3 20030502 (Red Hat Linux 3.2.3-39)] on linux2 > Type "help", "copyright", "credits" or "license" for more information. > >>>>import re >>>>pattern = re.compile('.*HTTP/(\d\.\d) *(\d*) *(.*)$') >>>>pattern.search("GGHTTP/1.1 200 OK\r\n", re.IGNORECASE) > > <_sre.SRE_Match object at 0xb75c6ed0> > >>>>pattern.search("GHTTP/1.1 200 OK\r\n", re.IGNORECASE) > > # this makes no sense to me. Why is the previous line matched
Because the second argument to pattern.search() is the position where the search starts, not a flag. re.IGNORECASE == 2 so your search is skipping the first two chars. Try giving the flags as a second argument to re.compile(): >>> import re >>> re.IGNORECASE 2 >>> pattern = re.compile('.*HTTP/(\d\.\d) *(\d*) *(.*)$', re.IGNORECASE) >>> pattern.search("GGHTTP/1.1 200 OK\r\n") <_sre.SRE_Match object at 0x00965980> >>> pattern.search("GHTTP/1.1 200 OK\r\n") <_sre.SRE_Match object at 0x009659D0> >>> pattern.search("Ghttp/1.1 200 OK\r\n") <_sre.SRE_Match object at 0x009651B0> Kent > # and this not? > >>>>pattern.search("GHTTP/1.1 200 OK\r\n") > > <_sre.SRE_Match object at 0xb758d020> > -- http://mail.python.org/mailman/listinfo/python-list