はじめに
正規表現を覚えるために、AIに問題を出させてひたすら解きまくる壁打ち練習をしています。ここにその記録を綴っていきます。
正規表現かべうちのルール
- 回答の正誤判定は regex101 でおこなう。特に指定がない場合は
Pythonフレーバー、オプションはg(global)・m(multi-line)・u(unicode)を使用。 - AIの挙げたサンプルテキスト内で条件通りにマッチできればOKとする。余力があれば例外処理を付け加えても可。
- 文字列の並び方について言及する場合、前後左右や手前などの言い方をせず、先読みの方向を 「先方向」 、後読みの方向を 「後方向」 と表記する。
【第7問】
マッチさせたい条件
アルファベット小文字4文字で構成された単語のうち、単語内に同じアルファベットが2文字連続している箇所を含み、かつその単語のすぐ後方向に
# 記号が存在する単語部分のみにマッチさせてください。
マッチング検証用テキスト
#look
#like
word
#free
#pass
#test
#book
#cat
cook
マッチ結果の文字列
look
free
pass
book
私の回答
\b(?<=\#)(?=[a-z]{4})(?=.*([a-z])\1).*\b
regex101: build, test, and debug regex
おわりに
このシリーズは 正規表現かべうち タグでまとめています。
