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

Reply via email to