Mémorandum de création d'un slackbot à l'aide de python Partie 3
Cela fait longtemps que [La dernière fois] 1 ...
Ne voyez-vous pas souvent un tel échantillon?
@respond_to("^test\s+\S.*")
Au début, je l'ai utilisé sans penser "C'est comme ça!"
Cependant, quand j'y réfléchis attentivement, j'ai remarqué que l'intérieur de () est une expression régulière (lente).
J'ai donc eu un problème "je veux faire un tel respond_to", alors j'ai essayé de le résoudre avec une expression régulière!
Cette fois, j'ai essayé de résumer les expressions régulières
La description de l'article est la suivante
Peut être utilisé avec PHP, Perl, Python, Ruby, etc.
Python a une bibliothèque ([re] 2) qui effectue des opérations telles que la recherche et le remplacement à l'aide d'expressions régulières. Cependant, comme il ne sera pas utilisé cette fois, l'explication est omise.
Si vous le souhaitez, voyez aussi [Expression régulière] 3 que j'ai résumé | д ゚)
@respond_to("^Bonjour") #Début de phrase
@respond_to("Bonsoir.$") #Fin de phrase
def respond_func(message):
message.react("+1")
Utilisez ** ^ ** au début de la phrase et ** $ ** à la fin de la phrase Vous pouvez voir que cela correspond fermement!
@respond_to("^Bonjour$"):
def respond_func(message):
mes = message.body["text"]
message.send(mes)
Combiner les deux résultats dans une expression régulière «exacte» Il ne répond pas seulement au mot "Bonjour"!
@listen_to("^repeat\s+\S.*")
def repeat_func(message):
rep_str = message.body["text"][7:]
message.send(rep_str)
Expressions régulières que tout le monde aime
\s+
Un ou plusieurs espaces (tabulations)
\s
Un caractère sauf pour les espaces (tabulations)
.*Tout caractère vaut 0 ou plus
Est devenu
Notez que sans \ S, même un seul espace (tabulation) réagira.
![sb_sample3.png][c]
Vous pouvez également déplacer le bot comme une ligne de commande comme celle-ci!
# "Je veux que vous exécutiez le processus une seule fois, même avec plusieurs mots."
J'ai d'abord trouvé ça
* Mauvais exemple
```python
@listen_to("Comme c'est gentil")
@listen_to("bien")
@listen_to("good")
def reaction_func(message):
message.react("+1")
La mauvaise chose à ce sujet est que si vous entrez quelque chose comme "Comme! Bon! Bon!", Il tournera trois fois.
Bien sûr, vous ne pouvez pas attacher plusieurs mêmes réactions par vous-même, vous obtenez donc l'erreur déjà_réagie
Si vous utilisez une expression régulière, vous pouvez l'effacer sans difficulté!
@listen_to("Comme c'est gentil|bien|good")
def reaction_func(message):
message.react("+1")
** | ** était une expression régulière signifiant "ou" (˘ω˘)
Le processus s'est terminé sans lancer une erreur comme celle-ci!
Actuellement, une erreur mystérieuse est sous enquête en raison d'une vente importante ... <(_ _>)
Les expressions régulières ont balayé beaucoup de mes soucis! Récemment, j'utilise beaucoup les expressions régulières non seulement sur slackbot mais aussi dans les affaires.
C'est à cette époque que j'ai eu envie de devenir bientôt un maître des expressions régulières ...!
Recommended Posts