从python中的字符串中删除子字符串

时间:2018-09-24 22:29:17

标签: python-2.7

我有一个类似这样的字符串:

OPEN BRANCH FROM BUS 264604 [19BVEO     345.00] TO BUS 
264888 [19LRTY     345.00] CKT 1

我想删除“ [”和“]”之间的子字符串。结果应该是这样的:

OPEN BRANCH FROM BUS 264604 TO BUS 264888 CKT 1

谢谢

2 个答案:

答案 0 :(得分:1)

您可以使用split

s='OPEN BRANCH FROM BUS 264604 [19BVEO     345.00] TO BUS 264888 [19LRTY     345.00] CKT 1'

pieces=[s.split(']')[-1] for s in s.split('[')]
print(pieces)
['OPEN BRANCH FROM BUS 264604 ', ' TO BUS 264888 ', ' CKT 1']

sentence=''.join(pieces)
print(sentence)
'OPEN BRANCH FROM BUS 264604  TO BUS 264888  CKT 1'

答案 1 :(得分:1)

Regex是一种选择:

import re

str_in = 'PEN BRANCH FROM BUS 264604 [19BVEO     345.00] TO BUS 264888 [19LRTY     345.00] CKT 1'

str_out = re.sub('\\[[^\\]]*\\]', '', str_in)

str_out打印为

PEN BRANCH FROM BUS 264604  TO BUS 264888  CKT 1

R的正则表达式模式来自this post。它将匹配并用空字符串替换整个字符串str_in中用方括号括起来的任何字符序列。

您可能还想删除括号内的文本所创建的多余空间。如果您注意到了,则删除后剩下两个空格,而不仅仅是一个。如果是这种情况,您可以在re.sub之后添加以下行,

str_out = (' ').join(str_out.split('  '))

所以str_out变成了

PEN BRANCH FROM BUS 264604 TO BUS 264888 CKT 1