You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python:如何查找字符串中被'n'分隔的'b'的连续区间?

查找字符串中被'n'分隔的连续'b'区间的实现方法

方法一:手动遍历字符串

通过遍历字符串的每个字符,跟踪连续'b'的起始位置,当遇到非'b'字符时结束当前区间记录并保存,最后处理字符串末尾可能残留的连续'b':

s = "nnbbbnbbbnnnnbb"
result = []
start_pos = None

for idx, char in enumerate(s):
    if char == 'b':
        # 遇到第一个'b',记录起始位置
        if start_pos is None:
            start_pos = idx
    else:
        # 遇到非'b'且之前在记录'b'区间,保存区间
        if start_pos is not None:
            result.append((start_pos, idx))
            start_pos = None

# 处理字符串末尾的连续'b'
if start_pos is not None:
    result.append((start_pos, len(s)))

print(result)  # 输出: [(2, 5), (6, 9), (13, 15)]

方法二:使用正则表达式

利用正则表达式匹配连续的'b'序列,通过re.finditer获取每个匹配的起始和结束索引,代码更简洁:

import re

s = "nnbbbnbbbnnnnbb"
result = []
# 匹配一个或多个连续的'b'
for match in re.finditer(r'b+', s):
    result.append((match.start(), match.end()))

print(result)  # 输出: [(2, 5), (6, 9), (13, 15)]

两种方法都能得到目标结果:手动遍历适合理解底层逻辑,正则表达式则更高效简洁,可根据需求选择。

内容的提问来源于stack exchange,提问作者Python_Slayer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 19:31:09