首页 > 解决方案 > 从python中的字符串中删除子字符串

问题描述

我有一个这样的字符串:

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

谢谢,

标签: python-2.7

解决方案


正则表达式是一种选择:

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 的这篇文章。它将匹配并用空字符串替换整个字符串中用方括号括起来的任何字符序列str_in

您可能还想删除因删除括号文本而产生的额外空间。如果您注意到,移除后会留下两个空格,而不仅仅是一个。如果是这种情况,您可以在 之后添加以下行re.sub

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

就这样str_out变成了,

PEN BRANCH FROM BUS 264604 TO BUS 264888 CKT 1

推荐阅读