zoukankan      html  css  js  c++  java
  • [Python]编程之美

    Task 1 : 首字母大写

    import re     #python 正则表达式包:re
    s='hello world'
    s=re.sub(r"w+",lambda match:match.group(0).capitalize(),s)

    赏析:

    re.sub,实现正则的替换。

    re.sub(pattern, repl, string, count=0, flags=0)
    Return the string obtained by replacing the leftmost non-overlapping occurrences of pattern in string by the replacement repl. If the pattern isn’t found, string is returned unchanged. repl can be a string or a function; if it is a string, any backslash escapes in it are processed. That is, 
     is converted to a single newline character, 
     is converted to a carriage return, and so forth. Unknown escapes such as j are left alone. Backreferences, such as 6, are replaced with the substring matched by group 6 in the pattern. For example:
    
    >>>
    >>> re.sub(r'defs+([a-zA-Z_][a-zA-Z_0-9]*)s*(s*):',
    ...        r'static PyObject*
    py_1(void)
    {',
    ...        'def myfunc():')
    'static PyObject*
    py_myfunc(void)
    {'
    If repl is a function, it is called for every non-overlapping occurrence of pattern. The function takes a single match object argument, and returns the replacement string. For example:
    
    >>>
    >>> def dashrepl(matchobj):
    ...     if matchobj.group(0) == '-': return ' '
    ...     else: return '-'
    >>> re.sub('-{1,2}', dashrepl, 'pro----gram-files')
    'pro--gram files'
    >>> re.sub(r'sANDs', ' & ', 'Baked Beans And Spam', flags=re.IGNORECASE)
    'Baked Beans & Spam'
    The pattern may be a string or an RE object.
    
    The optional argument count is the maximum number of pattern occurrences to be replaced; count must be a non-negative integer. If omitted or zero, all occurrences will be replaced. Empty matches for the pattern are replaced only when not adjacent to a previous match, so sub('x*', '-', 'abc') returns '-a-b-c-'.
    
    In string-type repl arguments, in addition to the character escapes and backreferences described above, g<name> will use the substring matched by the group named name, as defined by the (?P<name>...) syntax. g<number> uses the corresponding group number; g<2> is therefore equivalent to 2, but isn’t ambiguous in a replacement such as g<2>0. 20 would be interpreted as a reference to group 20, not a reference to group 2 followed by the literal character '0'. The backreference g<0> substitutes in the entire substring matched by the RE.
    
    Changed in version 2.7: Added the optional flags argument.

    Pattern  :  r"w+"表示匹配数字和字母下划线的多个字符。

    repl  : lambda match:match.group(0).capitalize()表示首字母大写。

  • 相关阅读:
    Unity 类似FingerGestures 的相机跟随功能
    protected 学习
    Unity 学习Json篇
    Unity 动态加载 Prefab
    iTween基础之iTweenPath(自定义路径移动)
    Unity连Photon服务器入门详解
    如何用unity3d实现发送带附件的邮件
    【转】【风宇冲】Unity3D教程宝典之Web服务器篇
    unity Editor编辑器插件脚本学习
    收集整理Android开发所需的Android SDK、开发中用到的工具
  • 原文地址:https://www.cnblogs.com/XBWer/p/6860885.html
Copyright © 2011-2022 走看看