python - 正则表达式 Python - 如何获取不连续的出现次数?
问题描述
这是我的代码,我想获取基于此模式的组合数量:x - y - x
,示例:"UBU" , "ANA", "INI"
import re
pattern = r"(?P<name>[a-z]).(?P=name)"
print(len(re.findall(pattern, "hello"))) # should return 0 : OK
print(len(re.findall(pattern, "mirror"))) # should return 1 because there is "ror" : OK
print(len(re.findall(pattern, "irir"))) #should return 2 because there are "iri" and "rir" : return just 1
当组合的一部分像“iri”中的“rir”的前两个字母一样重叠到另一个组合中时,它就不起作用了。
您知道如何获得这些组合的正确数量(对于第三个示例)吗?非常感谢您提前
解决方案
def pattern_counter(word):
return sum([1 for index, letter in enumerate(word[:(len(word)-2)]) if letter == word[index+2]])
word1 = "hello"
word2 = "mirror"
word3 = "irir"
print(pattern_counter(word1)) # prints 0
print(pattern_counter(word2)) # prints 1
print(pattern_counter(word3)) # prints 2
推荐阅读
- jquery - Jquery 多文档准备和类
- xml - plsql - 通过游标引用 xml 数据
- jquery - Ajax JQuery:单击动态创建的元素不起作用
- returnn - 你如何提取模型中使用的初始权重?
- php - Facebook 动态 og:image 使用 PHP
- windows - 使用 CMake 在 Visual Studio 中构建 ARM64 ASM
- sql-server - 如何使用 ODBC 将 Access 2013 数据库连接到 SQL Server(链接表)?
- c# - Screen.PrimaryScreen.Bounds.Width,Height,Size 错误
- java - (Java) 如何在不按“回车”键的情况下获取用户输入
- python - Numpy:沿轴应用具有不同索引的输入数组