Regular expression issue

Thomas Jollans thomas at jollybox.de
Mon Aug 9 00:32:55 CEST 2010


On Monday 09 August 2010, it occurred to genxtech to exclaim:
> I am trying to learn regular expressions in python3 and have an issue
> with one of the examples I'm working with.
> The code is:
> 
> #! /usr/bin/env python3
> 
> import re
> 
> search_string = "[^aeiou]y$"

To translate this expression to English:

a character that is not a, e, i, o, or u, followed by the character 'y', at 
the end of the line.

"vacancy" matches. It ends with "c" (not one of aeiou), followed by "y"

"pita" does not match: it does not end with "y".


> print()
> 
> in_string = 'vacancy'
> if re.search(search_string, in_string) != None:
> 	print(" ay, ey, iy, oy and uy are not at the end of
> {0}.".format(in_string))
> else:
> 	print(" ay, ey, iy, oy or uy were found at the end of
> {0}.".format(in_string))
> print()
> 
> in_string = 'boy'
> if re.search(search_string, in_string) != None:
> 	print(" ay, ey, iy, oy and uy are not at the end of
> {0}.".format(in_string))
> else:
> 	print(" ay, ey, iy, oy or uy were found at the end of
> {0}.".format(in_string))
> print()
> 
> in_string = 'day'
> if re.search(search_string, in_string) != None:
> 	print(" ay, ey, iy, oy and uy are not at the end of
> {0}.".format(in_string))
> else:
> 	print(" ay, ey, iy, oy or uy were found at the end of
> {0}.".format(in_string))
> print()
> 
> in_string = 'pita'
> if re.search(search_string, in_string) != None:
> 	print(" ay, ey, iy, oy and uy are not at the end of
> {0}.".format(in_string))
> else:
> 	print(" ay, ey, iy, oy or uy were found at the end of
> {0}.".format(in_string))
> print()
> 
> The output that I am getting is:
>    ay, ey, iy, oy and uy are not at the end of vacancy.
>    ay, ey, iy, oy or uy were found at the end of boy.
>    ay, ey, iy, oy or uy were found at the end of day.
>    ay, ey, iy, oy or uy were found at the end of pita.
> 
> The last line of the output is the opposite of what I expected to see,
> and I'm having trouble figuring out what the issue is.  Any help would
> be greatly appreciated.



More information about the Python-list mailing list