根据python中另一个字符串元素的数量删除字符串元素

让我们假设我们已经给出了一个这种形式的字符串。

xstr = 'hewBllo'

其中 eachB表示将从字符串中删除多少个先前的字符。例如,上面的字符串包含 1B.因此,前面的第一个字母B将从字符串中删除。新字符串应如下所示。

new_xstr = 'hello'

另一个例子:

xstr = 'remoBBBising'

转换后,新字符串应如下所示,

new_xstr = 'rising'

由于从前三个B字母开始有 3 个字母,因此B应从字符串中删除。我已经想出了一个算法,但是对于这样一个看似很小的过程,它花费的时间太长了。你们能想出 1-2 行代码来完成这个过程,或者是一种聪明的方法来做到这一点吗?

我的算法:

1-从后面读剧本。

2-当你第一次遇到时B,开始计数。

3-当您到达终点时B停止计数。

4-删除字符串作为计数。

5-删除所有B字母。

回答

使用带有 lambda 回调的正则表达式替换,我们可以尝试:

str = 'remoBBBising'
output = re.sub(r'(w+?)(B+)', lambda m: m.group(1)[:-len(m.group(2))] , str)
print(output)  # rising

这里的逻辑是在两个单独的组中捕获该B术语以及导致它的前一个单词。然后,我们只用第一个捕获的词替换,从词尾修剪B词条的长度。


以上是根据python中另一个字符串元素的数量删除字符串元素的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>