Python 使用lookahead/lookahead断言拆分字符串以匹配空字符串
我正在尝试拆分和重命名一些难看的变量名(例如): [1]中的Python 使用lookahead/lookahead断言拆分字符串以匹配空字符串,python,regex,split,Python,Regex,Split,我正在尝试拆分和重命名一些难看的变量名(例如): [1]中的:导入re 丑陋的名称=['some-sugger-Name'、'sugger:Case:Style'、'uglyNamedFunction'] 新名称=[] 在[2]中:patt=re.compile(r’(?不是对问题的直接回答,只是另一种方式-使用(必须分别处理:): 不是对问题的直接回答,而是另一种方式-使用(但必须单独处理:): Pythonre.split不能用空字符串拆分。请使用PyPi正则表达式模块。Pythonre.s
:导入re
丑陋的名称=['some-sugger-Name'、'sugger:Case:Style'、'uglyNamedFunction']
新名称=[]
在[2]中:patt=re.compile(r’(?不是对问题的直接回答,只是另一种方式-使用(必须分别处理:
):
不是对问题的直接回答,而是另一种方式-使用(但必须单独处理:
):
Pythonre.split
不能用空字符串拆分。请使用PyPi正则表达式模块。Pythonre.split
不能用空字符串拆分。请使用PyPi正则表达式模块。
In[1]: import re
ugly_names = ['some-Ugly-Name', 'ugly:Case:Style', 'uglyNamedFunction']
new_names = []
In[2]: patt = re.compile(r'(?<=[a-z])[\-:]?(?=[A-Z])')
In[3]: for name in ugly_names:
loc_name = patt.split(name)
new_names.append("_".join(s.lower() for s in loc_name))
print(new_names)
Out[3]: ['some_ugly_name', 'ugly_case_style', 'uglynamedfunction']
>>> import inflection
>>>
>>> [inflection.underscore(name.replace(":", "_")) for name in ugly_names]
['some_ugly_name', 'ugly_case_style', 'ugly_named_function']