2017-12-24 6 views
0

Ich versuche, etwas in Python zu machen, wo Sie die Anzahl der Buchstaben in ein Wort eingeben, dann sucht es in einer Wortliste nach Wörtern mit dieser Menge an Zeichen.Regex in Python Suche

Mein Code:

import sys 

import re 

def search(pattern): 

    print("Searching...\n\n") 

    for i, line in enumerate(open(sys.argv[1])): 

     for match in re.finditer(pattern, line): 

      print(match.groups()) 


    print("\n\nFinished.") 


while True: 

    word = "" 

    put = int(input("Amount of Letters in Word: ")) 

    if put > 25 or put < 3: 

     print("Invalid amount of letters.") 

    else: 

     for n in range(0, put): 

      word = word + "." 

     word = "^" + word + "$" 

     pattern = re.compile(word) 

     search(pattern) 

Ich will es alle Wörter mit der Anzahl der Buchstaben zeigen, dass Sie setzen.

https://i.imgur.com/Kgusvyh.png

Liste der Wörter:

word 
1234 
okay 
0000 
asdfg 
asdfh 
asdgj 

Warum kommt es()?

+1

Sie drucken match.groups jedes Mal .. das ist wahrscheinlich ein leeres Tupel drucken. [this] (https://stackoverflow.com/questions/7312020/why-wont-re-groups-give-me-any-ything-for-my-one-correctly-matched-group) könnte der Grund sein – 0TTT0

+0

Nvm, behoben durch Ersetzen von match.groups() durch match.group() – Boobah

Antwort

0

Wird behoben, indem match.groups() durch match.group() ersetzt wird.