【发布时间】:2018-10-08 11:27:04
【问题描述】:
我有一个字符串
1AAAAaaa>###_1BBbbbbbbb>###_2CCCCCCCCccccc
数据块以“数字”开头,以>结尾。
我需要计算这些块中有多少小写字母超过大写字母。
作为我想要得到的答案
there are x places between number and >, where lowercase is over 50%.
我了解如何对整个字符串执行此操作,但不适用于单独的区域。
【问题讨论】:
-
欢迎使用 Stack Overflow 和 Perl 标签。请使用tour 并阅读How to Ask。如果您已经有代码为整个字符串执行此操作,那很好。请edit您的问题并包括在内。我们更倾向于帮助解决一个具体的问题,而不是那些读起来像需求列表的东西。还请更详细地解释您所说的超过 50% 是什么意思。这是相对于所有字符的小写字符数吗?
-
作为一般建议,听起来您可能希望使用正则表达式来执行此操作。您不必总是在复杂的正则表达式中做所有事情。我可能会将字符串分成多个区域,并完全单独处理每个区域。如果你这样做,你的整个字符串的解决方案应该可以工作。
-
将问题分解成可以使用
my @blocks = $string =~ /.*>/g解决的步骤,剩下的就知道了。