我遇到了创建代码的问题,该代码将在模式未匹配时进行计数,并在该模式使用正则表达式匹配时重置为0。我将列出该文件的一个示例,并尝试演示我要做的事情。无论文件中有多少匹配,我都会收到-1。我也不确定如何在文本文件中格式化数字。
regEx56“找到其中包含56的所有数字,无论位置如何)256 526 065。 regEx57“与56相同,但使用57代替”
p3text file. python count: 56 57
107 -1 -1
328 -2 -2
156 0 -3
725 -1 0
这是我的代码:
import re
my_p3text = open("p3text.txt", "r")
p3data = my_p3text.read()
regEx56 = str(re.findall(r'\b[0-4]*(?:5[0-4]?6|6[0-4]?5)[0-4]*\b',p3data))
regEx57 =str(r'\b[0-4]*(?:5[0-4]?7|7[0-4]?5)[0-4]*\b',p3data)
for line in my_p3text:
match=regEx56.search(line)
count = 0
print (match)
else:
count = -1
print (count)
答案 0 :(得分:0)
首先:
for line in my_p3text:
match=regEx56.search(line)
count = 0
print (match)
else:
count = -1
表示当没有更多行时,它将打印-1,这始终是。在for循环中放入一个if-else语句。
此外,现在你的号码只能从0-4,5,6或7开始;可能0-4在6-7和5之间(反之亦然)。它也以与它开始的方式类似的方式结束。
如果这是你想要的,那就没关系,否则试试......
(\d*((5\d*?[67])|([67]\d*?5))\d*)