re module non-greedy matches broken

Christopher Weimann cweimann at k12hq.com
Mon Apr 4 17:47:43 EDT 2005


On 04/04/2005-04:20PM, lothar wrote:
> 
> how then, do i specify a non-greedy regex
>   <1st-pat><not-1st-pat>*?<follow-pat>
> 
> that is, such that non-greedy part <not-1st-pat>*?
> excludes a match of <1st-pat>
> 

jet% cat vwre2.py
#! /usr/bin/env python

import re

vwre = re.compile("V[^V]W")
vwlre = re.compile("V[^V]WL")

if __name__ == "__main__":

  newdoc = "V1WVVV2WWW"
  vwli = re.findall(vwre, newdoc)
  print "vwli[], expect", ['V1W', 'V2W']
  print "vwli[], return", vwli

  newdoc = "V1WLV2WV3WV4WLV5WV6WL"
  vwlli = re.findall(vwlre, newdoc)
  print "vwlli[], expect", ['V1WL', 'V4WL', 'V6WL']
  print "vwlli[], return", vwlli

jet% ./vwre2.py
vwli[], expect ['V1W', 'V2W']
vwli[], return ['V1W', 'V2W']
vwlli[], expect ['V1WL', 'V4WL', 'V6WL']
vwlli[], return ['V1WL', 'V4WL', 'V6WL']




More information about the Python-list mailing list