df
Out[17]:
0 (a)[b]<c>
1 (aa)[bb]<cc>
2 (e)[f]<g>
dtype: object
我需要在特殊字符之间提取字符串。
df.str.findall(r'[^[]*\[([^]]*)\]')
Out[16]:
0 [b]
1 [bb]
2 [f]
dtype: object
使用此方法,我可以在[]之间获取字符串,但无法在(),<>之间提取文本 请帮我解决一下这个。 我需要输出像:
0 (a) [b] <c>
1 (aa) [bb] <cc>
2 (e) [f] <g>
答案 0 :(得分:0)
df.apply(lambda x: ' '.join(re.findall('(?<=[\W])[a-z]+(?=[\W])',x)))
输出
0 a b c
1 aa bb cc
2 e f g
OR
df.apply(lambda x: ' '.join(re.findall('[\W][a-z]+[\W]',x)))
输出
0 (a) [b] <c>
1 (aa) [bb] <cc>
2 (e) [f] <g>