Pythonサンプルコード集

【Python】Slackbotで正規表現のグループを使う方法

前回の記事「Slackbotの挨拶のパターンに対応する」では正規表現を用いて様々なパターンに対応しました。

前回使用した正規表現だけでも多くのパターンに対応することが可能でしたが、以下の場合の省略ができません。

・「やあ、こんにちは」の「やあ、」を省略可能にする場合
一時ずつ省略とした場合、「やこんにちは」、「あこんにちは」でもOKとなってしまいます。

「S*」、「.*」の記号を使用した場合も省略は可能ですが、条件に当てはまればどんな文字でも記述可能となってしまいます。

そこで登場するのが正規表現のグルーピングです。文字列をグループ化することで「やあ、」の部分だけ省略可能となります。

PythonでのSlackbot作成の基本については「SlackbotをPythonで作成しよう」をお読みください。

Slackbotにおける正規表現のグルーピング

グルーピングする場合は以下の通りです。
"()"で括ることでその間の文字列をグループすることができます。

◆記述内容

◆実行結果
「やあ、」の省略ありなし

引数にはグループの値が入ります。

◆記述内容

◆実行結果
グループの文字列を表示する

Slackbot+正規表現で複数のグループを使用する

複数のグループを使用したい場合はその数だけ追加で引数を指定する必要があります。
引数は省略できません。

グループ化することで、以下のような記述も可能です。

◆記述内容

「|」はORの意味になります。
上記の例では「こんにちは」、「コニチハ」のどちらでも応答してくれます。

◆実行結果
二つのあいさつ両方に反応する

条件を加えれば言葉によって応答を変えることも可能です。

◆記述内容

◆実行結果
あいさつの種類によって応答を切り分ける

以上、正規表現のグルーピングについてでした。

Python正規表現の特殊記号と記述方法まとめ>>Python正規表現の特殊記号と記述方法まとめ

SlackbotまとめTOP>>Slackbotの作り方マニュアル〜Python編〜

◆関連記事
Slackbotで今日の天気を確認する〜Python・Node.jsでのBot開発〜
Slackbotに音声付きで応答させる〜PythonでのBot開発〜
Pythonの正規表現チェッカーを作成してみました

こちらの記事も読まれています

  • この記事を書いた人
miyabikno

みやびの

住んでいるところ:神奈川県。 プログラミング歴は13年ほど。 ※プログラミングに関する無料相談・質問への回答は行っていません。

-Pythonサンプルコード集
-,

Copyright© みやびのどっとぴーわい , 2020 All Rights Reserved Powered by AFFINGER5.