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

标签 python string

假设我们以这种形式给出了一个字符串。

xstr = 'hewBllo'

其中每个 B 表示将从字符串中删除多少个先前的字符。例如,上面的字符串包含 1 B. 因此,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 - 根据python中另一个字符串元素的数量删除字符串元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68711852/

相关文章:

python - 将数字列表分成两组,使得一组中的数字与另一组中的数字没有任何共同因素

python - 模板渲染期间出现 TemplateSyntaxError

r - 拆分字符串并检查所有元素在 R 中是否唯一

android - 开始一个新 Activity ,并将一个字符串传输到该 Activity

R:当电子邮件有多个域名后缀时,如何将电子邮件拆分为多个部分?

java - 如何在Java中进行字符串化

python - 在哪里可以找到 python 的内置类的方法和属性?

python - Numpy - 计算对角线的乘积

python - 在 Tkinter 中按下按钮后如何清除 Entry 小部件?

java - 尝试分割长字符串并将其数据用于列表