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

统计特定子串区域内小写字母占比超50%的区块数量

解决思路与实现方案

首先,咱们得先把字符串里的每个独立区块提取出来——这正是你当前缺的关键步骤,毕竟你已经懂整串统计的逻辑,只要把每个目标区域单独拆分出来,剩下的就好办了。

步骤拆解:

  • 第一步:拆分独立区块:用正则表达式精准匹配所有符合「数字开头 + 字母内容 + >结尾」的区块,把每个目标区域单独拎出来。
  • 第二步:清理区块内容:去掉每个区块开头的数字和结尾的>,只保留中间的纯字母部分,方便后续统计。
  • 第三步:统计大小写并判断:对每个字母片段,分别统计大写、小写字母的数量,判断小写数量是否严格多于大写。
  • 第四步:计数符合条件的区块:遍历所有区块,累加满足「小写字母数 > 大写字母数」的区块数量。

代码实现(Python)

import re

# 你的目标字符串(补全了第三个区块的>,确保符合规则)
input_str = "1AAAAaaa>###_1BBbbbbbbb>###_2CCCCCCCCccccc>"

# 1. 提取所有符合规则的区块:数字开头 + 字母内容 + >结尾
blocks = re.findall(r'\d[A-Za-z]+>', input_str)

satisfy_count = 0

for block in blocks:
    # 2. 清理区块:去掉开头的数字和结尾的>,得到纯字母串
    pure_letters = block[1:-1]
    # 3. 统计大小写字母数量
    upper_num = sum(1 for c in pure_letters if c.isupper())
    lower_num = sum(1 for c in pure_letters if c.islower())
    # 4. 判断并计数
    if lower_num > upper_num:
        satisfy_count += 1

print(f"满足条件的区块个数:{satisfy_count}")

代码细节说明:

  • 正则表达式r'\d[A-Za-z]+>':\d匹配开头的数字,[A-Za-z]+匹配中间至少一个字母,>匹配结尾符号,刚好精准抓取每个独立区块。
  • 清理区块时用block[1:-1]切片,直接去掉第一个字符(数字)和最后一个字符(>),简单高效。
  • 统计大小写用生成器表达式,写法简洁且性能稳定。

拿你的示例字符串测试:

  • 第一个区块1AAAAaaa>:字母是AAAAaaa,大写4个,小写3个 → 不满足
  • 第二个区块1BBbbbbbbb>:字母是BBbbbbbbb,大写2个,小写7个 → 满足
  • 第三个区块2CCCCCCCCccccc>:字母是CCCCCCCCccccc,大写8个,小写5个 → 不满足
    最终统计结果为1,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:05:52