如果我有
模式“A * C”和我的 string是“AKKLSKLCAajaklDAajdklafdC”它应该返回2但它返回0.
string = input("What is the string?")
pattern = input("What is the pattern?")
print (len(re.findall(pattern, string)))
我也试过
count = 0
match = re.search(pattern,string)
if match:
count +=1
那也返回零。
答案 0 :(得分:2)
两件事,
首先,给定的代码DOES返回2:
string = "AKKLSKLCAajaklDAajdklafdC"
pattern = "A*C"
print (len(re.findall(pattern, string)))
其次,你确定“A * C”是你想要匹配的模式吗?该模式要求零个或多个连续的A,紧接着是C,所以在示例字符串中,你只给出了两个C的匹配(例如“AKKLSKL C AajaklDAajdklafd C 强>“)。如果你试图找到一个A,然后是一个C,其间有一些随机垃圾(例如“ AKKLSKLC AajaklD AajdklafdC ”),你想要“A. * C “相反。那是因为,对于正则表达式,'。' character是一个通配符,而不是'*',表示查找前面字符中的零个或多个。这与许多非正则表达式搜索器的工作方式不同,后者使用“*”作为通配符。