Bugs item #1212411, was opened at 2005-06-01 05:13 Message generated for change (Comment added) made by karamana You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1212411&group_id=5470
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Regular Expressions Group: Python 2.4 Status: Open Resolution: None Priority: 5 Submitted By: Vijay Kumar (karamana) Assigned to: Gustavo Niemeyer (niemeyer) Summary: Incorrect result for regular expression - "|(hello)|(world)" Initial Comment: The regular expression "|hello|world" incorrectly gives a match, owing to the starting '|'. Below is a sample program which highlights this. The correct result behavior is to return None: If the leading '|' is removed then the result is correct. ----- import re m = re.search("|hello|world","This is a simple sentence") print m m2 = re.search("hello|world","This is a simple sentence") print m2 ---- output --- <_sre.SRE_Match object at 0x00B71F70> None ---------- The first one is incorrect. Should have returned a None. ---------------------------------------------------------------------- >Comment By: Vijay Kumar (karamana) Date: 2005-06-01 22:59 Message: Logged In: YES user_id=404715 I think what you are saying is correct in terms of a formal sense, but it makes sense to distinguish between a useful match and an empty match. May be there can be an additional method isEmptyMatch() in the match object which can be used to detect this. Also this one does not work: Gives a compile error m = re.search("[]","This is a simple sentence") print m wherease this one returns None: m = re.search("[|]","This is a simple sentence") print m So the empty match is not consistent :) (don't know if I should wink ) ---------------------------------------------------------------------- Comment By: Raymond Hettinger (rhettinger) Date: 2005-06-01 21:39 Message: Logged In: YES user_id=80475 The current behavior best matches my expectations. One other datapoint, AWK handles it the same way. Recommend closing this as Invalid. ---------------------------------------------------------------------- Comment By: Tim Peters (tim_one) Date: 2005-06-01 05:19 Message: Logged In: YES user_id=31435 I expect you'll find that, e.g., Perl does the same thing: a "missing" alternative is treated as an empty string, and an empty string always matches. What basis do you have for claiming it should not match (beyond just repeating that it should not <wink>)? ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1212411&group_id=5470 _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com