geew
V2EX  ›  问与答

有关字符串的转换 - python

  •  
  •   geew · Aug 7, 2013 · 2625 views
    This topic created in 4750 days ago, the information mentioned may be changed or developed.
    问题如下:
    最简单的方法转换 UserName 为 user_name
    6 replies    1970-01-01 08:00:00 +08:00
    clino
        1
    clino  
       Aug 7, 2013
    你这是在考大家还是咨询怎么做?
    geew
        2
    geew  
    OP
       Aug 7, 2013
    @clino 咨询吧 我自己想的方法觉得不好 想问问有没有更加简洁的
    qdvictory
        3
    qdvictory  
       Aug 7, 2013
    str = 'UserName'
    ''.join(chr(i) if i >= 97 else '_'+chr(i+32) for i in [ord(x) for x in str])[1:]
    qdvictory
        4
    qdvictory  
       Aug 7, 2013
    再加个开头不是大写的。。
    str = 'UserName'
    prefix = '_'
    text = ''.join(chr(i) if i >= 97 else prefix+chr(i+32) for i in [ord(x) for x in str])
    text[len(prefix):] if text.startswith(prefix) else text
    qdvictory
        5
    qdvictory  
       Aug 7, 2013   ❤️ 1
    import re
    str = 'UserName'
    r = re.compile(r'[A-Z][a-z]+')
    li = re.findall(r,str)
    '_'.join([x.lower() for x in li])
    geew
        6
    geew  
    OP
       Aug 7, 2013
    @qdvictory 谢谢 不错的方法 之前没想过正则
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2673 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 15:07 · PVG 23:07 · LAX 08:07 · JFK 11:07
    ♥ Do have faith in what you're doing.