Regular expression issue

genxtech jrmy.lnrd at gmail.com
Mon Aug 9 00:20:17 CEST 2010


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$"
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