On 2012-10-21 00:14, contro opinion wrote:
the pattern `re.compile(".(?#nyh2p){0,1}")` , make me confused, can you explain how it can match the first letter of every word?
It matches all of the characters, plus an empty string at the end. It's equivalent to: result = "" for c in "a test of capitalizing": result = (result + c).title() result = (result + "").title() or: result = "a test of capitalizing".title() but somewhat slower...
2012/10/20 Dennis Lee Bieber <wlfr...@ix.netcom.com <mailto:wlfr...@ix.netcom.com>> On Sat, 20 Oct 2012 01:03:46 -0400, Zero Piraeus <sche...@gmail.com <mailto:sche...@gmail.com>> declaimed the following in gmane.comp.python.general: > : > > On 20 October 2012 00:09, contro opinion <contropin...@gmail.com <mailto:contropin...@gmail.com>> wrote: > > how can i use regular expression in python to change the string > > "a test of capitalizing" > > into > > "A Test Of Capitalizing"? > > >>> import re > >>> pattern = re.compile(".(?#nyh2p){0,1}") > >>> result = "" > >>> f = str.title f = str.capitalize > >>> for match in re.findall(pattern, "a test of capitalizing"): > ... result = f(result + match) result = result + f(match) Or closer... Don't both with f and str.capitalize result = result + match.capitalize() > ... > >>> print(result) > A Test Of Capitalizing > >>> > >>> "a test of capitalizing".title() 'A Test Of Capitalizing' >>> Not to be confused with >>> "a test of capitalizing".capitalize() 'A test of capitalizing' >>>
-- http://mail.python.org/mailman/listinfo/python-list