首页 > 解决方案 > 构建一个类以匹配读入的 .txt 文件中的正则表达式

问题描述

我对 python 很陌生,在理解如何构建适当的类方面遇到了一些麻烦。我目前正在寻找一种方法让我的班级在 txt 文件中查找单词(或任何其他正则表达式)并打印这些单词(蓝色)及其行。现在,我的班级做得不多,我不知道为什么。

这是代码:

import re
class RegIter():
    def __init__(self, path, regexp):
        with open (path) as f:
            self.text=f.read()
        self.text=str(re.finditer("\w+|[^\w ]+",self.text))     

        self.wörter=list()                                  
        wörter=self.wörter                                 


        self.regexp=re.compile(self.text)


    def print(self):
        print(self.text)

    def makeBlue(text):
        return ("\033[34m"+str(text)+"\033[0m")



    def __str__(self):                          
        beginn=0
        for match in self.regexp.finditer(line):           
            start=match.start()
            end=match.end()
            print(line[beginn:start], end="")
            beginn=end
            return(line[start:end])                    
            print(self.makeBlue(line[start:end]), end="")


    def __iter__(self):
        self.c=0
        return self

    def __next__(self):
        if self.c<len(self.wörter):
            returner=self.wörter[self.c]
        else:
            raise StopIteration
            self.c+=1
        return returner

    def __len__(self):
        return len(self.wörter)

myobject=RegIter("Bsp1.txt", "\w+|[^\w ]+")
print(len(myobject))

for match in myobject:
    print(match)
    print(myobject)    

发现错误可能很容易,但我找不到它为什么不起作用。

标签: pythonclass

解决方案


推荐阅读