我有一个类似这样的字符串:
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
谢谢
答案 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