在Python中拆分字符串(使用)和sp

2024-09-25 18:14:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一根弦:

'srv1(compA1 compA2) srv2(compA3 compA2) srv3(comp4 comp5)'

我需要这样分开它:

['srv1(compA1 compA2)', 'srv2(compA3 compA2)', 'srv3(comp4 comp5)' ]

我试着用空格分开它,但是它分开了comp1 comp2的内部字符串。。。你知道吗


Tags: 字符串空格comp1comp2srv2srv3srv1comp4
3条回答

你可以这样试试

a='srv1(compA1 compA2) srv2(compA3 compA2) srv3(comp4 comp5)'
print a.replace(' s','###s').split('###')

#output
['srv1(compA1 compA2)', 'srv2(compA3 compA2)', 'srv3(comp4 comp5)']

或者可以使用regular expression

In [9]: import re

In [10]: string = 'srv1(compA1 compA2) srv2(compA3 compA2) srv3(comp4 comp5)'

In [11]: re.split(r'(?<=\)) ', string)
Out[11]: ['srv1(compA1 compA2)', 'srv2(compA3 compA2)', 'srv3(comp4 comp5)']

您可以在“)”上拆分,然后像这样将“)”添加回:

line = 'srv1(compA1 compA2) srv2(compA3 compA2) srv3(comp4 comp5)'
[e if e.endswith(')') else e + ')' for e in line.split(') ')]
['srv1(compA1 compA2)', 'srv2(compA3 compA2)', 'srv3(comp4 comp5)']

虽然有点难看,但还是管用的。你知道吗

相关问题 更多 >