Gemäß meiner ursprünglichen Kommentar, wird die unten genau das, was ich zu erklären.
Da Sie in der Lage sein möchten, dies auf viele Wörter zu verwenden, denke ich, dass Sie das suchen.
import re
word = "day"
regex = r"^"+("+".join(list(word)))+"+$"
test_str = ("Day\n"
"Dday\n"
"Daay\n"
"Dayy\n"
"Ddaay\n"
"Ddayy")
matches = re.finditer(regex, test_str, re.IGNORECASE | re.MULTILINE)
for matchNum, match in enumerate(matches):
matchNum = matchNum + 1
print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group()))
Dies funktioniert, indem Sie die Zeichenfolge in eine Liste konvertieren, dann zurück zu String konvertieren, sie auf +
Beitritt und das gleiche anhängt. Die resultierende Regex wird ^d+a+y+$
sein. Da die von Ihnen angegebene Eingabe durch Zeilenumbrüche getrennt ist, habe ich re.MULTILINE
hinzugefügt.
Können Sie uns zeigen, was Sie bereits ausprobiert haben? –
Sie wollen also eine Regex, die "einen oder mehrere Buchstaben" entspricht? Oder etwas anderes? Können Sie ein Beispiel geben für etwas, das Ihre Regex nicht erfüllen sollte? – Kevin
Warum teilen Sie Ihr Wort nicht einfach in ein Array von Zeichen und fügen Sie es nach jedem Zeichen wieder mit '+' zusammen?Du würdest mit 'd + a + y +' enden: https://stackoverflow.com/questions/15418561/convert-a-word-to-a-list-of-chars – ctwheels