在 Python 中拆分字符串和捕获组
Split strings and capture groups in Python
我有以下字符串:
'Cc1cc([N+](=O)[O-])ccc1OCC(C)(O)CN1CCN(Cc2ccccc2)CC1'
想捕获[N+]和[O-],也就是分裂回收。
我似乎无法使用 re.split.
恢复它们
re.split(r'\[[^\]]*\]','Cc1cc([N+](=O)[O-])ccc1OCC(C)(O)CN1CCN(Cc2ccccc2)CC1')
output:
['Cc1cc(', '(=O)', ')ccc1OCC(C)(O)CN1CCN(Cc2ccccc2)CC1']
我正在寻找这样的东西:
['Cc1cc(', '[N+]','(=O)','[O-]', ')ccc1OCC(C)(O)CN1CCN(Cc2ccccc2)CC1']
我知道有如下编辑:
或
In Python, how do I split a string and keep the separators?
如果您应用函数 re.split 用括号包裹您的函数,您将获得所需的输出:
s = 'Cc1cc([N+](=O)[O-])ccc1OCC(C)(O)CN1CCN(Cc2ccccc2)CC1'
re.split('(\[[^\]]*\])',s)
output :
['Cc1cc(', '[N+]', '(=O)', '[O-]', ')ccc1OCC(C)(O)CN1CCN(Cc2ccccc2)CC1']
我有以下字符串:
'Cc1cc([N+](=O)[O-])ccc1OCC(C)(O)CN1CCN(Cc2ccccc2)CC1'
想捕获[N+]和[O-],也就是分裂回收。 我似乎无法使用 re.split.
恢复它们re.split(r'\[[^\]]*\]','Cc1cc([N+](=O)[O-])ccc1OCC(C)(O)CN1CCN(Cc2ccccc2)CC1')
output:
['Cc1cc(', '(=O)', ')ccc1OCC(C)(O)CN1CCN(Cc2ccccc2)CC1']
我正在寻找这样的东西:
['Cc1cc(', '[N+]','(=O)','[O-]', ')ccc1OCC(C)(O)CN1CCN(Cc2ccccc2)CC1']
我知道有如下编辑:
如果您应用函数 re.split 用括号包裹您的函数,您将获得所需的输出:
s = 'Cc1cc([N+](=O)[O-])ccc1OCC(C)(O)CN1CCN(Cc2ccccc2)CC1'
re.split('(\[[^\]]*\])',s)
output :
['Cc1cc(', '[N+]', '(=O)', '[O-]', ')ccc1OCC(C)(O)CN1CCN(Cc2ccccc2)CC1']