Memorandum zum Erstellen eines Slackbots mit Python Teil 3
Es ist lange her seit [Letztes Mal] 1 ...
Sehen Sie eine solche Probe nicht oft?
@respond_to("^test\s+\S.*")
Zuerst habe ich es benutzt, ohne zu denken "Es ist so!"
Als ich jedoch sorgfältig darüber nachdachte, bemerkte ich, dass das Innere von () ein regulärer Ausdruck ist (langsam).
Also hatte ich ein Problem "Ich möchte so eine Antwort machen", also habe ich versucht, es mit einem regulären Ausdruck zu lösen!
Diesmal habe ich versucht, die regulären Ausdrücke zusammenzufassen
Die Artikelbeschreibung lautet wie folgt
Kann mit PHP, Perl, Python, Ruby usw. verwendet werden.
Python verfügt über eine Bibliothek ([re] 2), die Operationen wie Suchen und Ersetzen mit regulären Ausdrücken ausführt. Da es diesmal jedoch nicht verwendet wird, wird die Erklärung weggelassen.
Wenn Sie möchten, lesen Sie bitte auch [Regulärer Ausdruck] 3, den ich zusammengefasst habe | д ゚)
@respond_to("^Guten Morgen") #Satzanfang
@respond_to("Guten Abend.$") #Ende des Satzes
def respond_func(message):
message.react("+1")
Verwenden Sie ** ^ ** am Satzanfang und ** $ ** am Ende des Satzes Sie können sehen, dass es fest korrespondiert!
@respond_to("^Hallo$"):
def respond_func(message):
mes = message.body["text"]
message.send(mes)
Die Kombination der beiden führt zu einem regulären Ausdruck "exakte Übereinstimmung" Es reagiert nicht nur auf das Wort "Hallo"!
@listen_to("^repeat\s+\S.*")
def repeat_func(message):
rep_str = message.body["text"][7:]
message.send(rep_str)
Reguläre Ausdrücke, die jeder liebt
\s+
Ein oder mehrere Leerzeichen (Tabulatoren)
\s
Ein Zeichen außer Leerzeichen (Tabulatoren)
.*Jedes Zeichen ist 0 oder mehr
Wurde
Beachten Sie, dass ohne \ S sogar ein einzelnes Leerzeichen (Tabulator) reagiert.
![sb_sample3.png][c]
Sie können den Bot auch wie eine Befehlszeile wie diese bewegen!
# "Ich möchte, dass Sie den Prozess auch mit mehreren Wörtern nur einmal ausführen."
Ich habe mir das zuerst ausgedacht
* Schlechtes Beispiel
```python
@listen_to("Wie schön")
@listen_to("gut")
@listen_to("good")
def reaction_func(message):
message.react("+1")
Das Schlechte daran ist, dass wenn Sie etwas wie "Gefällt mir! Gut! Gut!" Eingeben, es sich dreimal dreht.
Natürlich können Sie nicht mehrere gleiche Reaktionen selbst anhängen, daher erhalten Sie den Fehler "bereits reagiert"
Wenn Sie einen regulären Ausdruck verwenden, können Sie ihn problemlos löschen!
@listen_to("Wie schön|gut|good")
def reaction_func(message):
message.react("+1")
** | ** war ein regulärer Ausdruck mit der Bedeutung "oder" (˘ω˘)
Der Vorgang wurde ohne einen solchen Fehler abgeschlossen!
Derzeit wird ein mysteriöser Fehler aufgrund eines großen Verkaufs untersucht ... <(_ _>)
Reguläre Ausdrücke haben viele meiner Sorgen weggeblasen! In letzter Zeit verwende ich häufig reguläre Ausdrücke, nicht nur für Slackbot, sondern auch für Unternehmen.
Ungefähr zu dieser Zeit wollte ich bald ein Meister des regulären Ausdrucks werden ...!
Recommended Posts