Skip to main content
added regex alternative
Source Link

It can be a bit shorter:

def cc2jl(s):
  return "".join(["_"+l if i and l.isupper() and not s[i-1:i+2].isupper() else l for i, l in enumerate(s)]).lower()

Regular Expression Alternative:

rx = re.compile(r"(?<=.)(((?<![A-Z])[A-Z])|([A-Z](?=[a-z])))")
def cc2jl(s):
    return rx.sub("_\\1", s).lower()

It can be a bit shorter:

def cc2jl(s):
  return "".join(["_"+l if i and l.isupper() and not s[i-1:i+2].isupper() else l for i, l in enumerate(s)]).lower()

It can be a bit shorter:

def cc2jl(s):
  return "".join(["_"+l if i and l.isupper() and not s[i-1:i+2].isupper() else l for i, l in enumerate(s)]).lower()

Regular Expression Alternative:

rx = re.compile(r"(?<=.)(((?<![A-Z])[A-Z])|([A-Z](?=[a-z])))")
def cc2jl(s):
    return rx.sub("_\\1", s).lower()
fixed double underscore bug
Source Link

It can be a bit shorter:

def cc2jl(s):
  return "".join([("_"+l["_"+l if l.isupper() else l+"_") 
   i ifand l.isupper() != s[i+1and ifnot 0<i<len(s)s[i-1 else i]:i+2].isupper() else l for i, l in enumerate(s)]).lower()

It can be a bit shorter:

def cc2jl(s):
  return "".join([("_"+l if l.isupper() else l+"_") 
    if l.isupper() != s[i+1 if 0<i<len(s)-1 else i].isupper() else l for i, l in enumerate(s)]).lower()

It can be a bit shorter:

def cc2jl(s):
  return "".join(["_"+l if i and l.isupper() and not s[i-1:i+2].isupper() else l for i, l in enumerate(s)]).lower()
fixed the bug converts mySQL to mysql instead of my_sql
Source Link

It can be a bit shorter:

def cc2jl(s):
    return "".join(["_"+l[("_"+l if notl.isupper() else l+"_") 
    if l.islowerisupper() and!= s[i+1 if 0<i<len(s)-1 else i].islowerisupper() else l for i, l in enumerate(s)]).lower()

It can be a bit shorter:

def cc2jl(s):
    return "".join(["_"+l if not l.islower() and s[i+1 if 0<i<len(s)-1 else i].islower() else l for i, l in enumerate(s)]).lower()

It can be a bit shorter:

def cc2jl(s):
  return "".join([("_"+l if l.isupper() else l+"_") 
    if l.isupper() != s[i+1 if 0<i<len(s)-1 else i].isupper() else l for i, l in enumerate(s)]).lower()
Source Link
Loading