python - 检测字符串中的火焰
问题描述
我正在寻找一种计算多个连续字符并计算所有用大写字母书写的单词的算法。
我想要的输出是,对于每个用大写字母写的单词,计数器都会增加 1,并且对于每个顺序使用的字符,计数器会再次增加 1
例子:
str = "来吧,伙计!!!"
计数器 = 4
说明:COME +1,ON +1,DUDE +1,!!!+1
关于如何实现这个特定算法的任何想法?
太感谢了!
解决方案
正则表达式是你的朋友。
import re
test = "COME ON DUDE!!!"
count = len(re.findall('([A-Z]{2,})|(?P<r>\S)(?P=r){2,}', test))
当然,您应该查看.findall()
带有更多测试字符串的输出,以确保它实际上在计算您想要的结果。(这就是为什么我包括一个额外的捕获组。)
推荐阅读
- node.js - MEAN Stack - SPA webapp 上的 *refresh*
- wso2 - 如何更改 wso2 esb 中的标题标签
- amazon-web-services - 挂载 AWS EFS 后无法访问 Drupal 站点
- python - 从 Excel 中的 CSV 到 Pandas 的日期格式不正确
- android - 如何在我制作的地图上映射 GPS 坐标?
- php - 从数据库中获取 lat/lng 点的距离
- r - 注释矩形以在两个因素之间开始
- pywinauto - “HwndElementInfo”对象没有属性“automation_id”
- linkedin - 富媒体份额
- visual-studio-2017 - 有形 TemplateFileManager 错误