CG・プログラミング・AIとかについてのメモ

正規表現かべうち【第8問】[] で囲まれた数字の後方向に TAG: 先方向に =active があればマッチ

はじめに

正規表現を覚えるために、AIに問題を出させてひたすら解きまくる壁打ち練習をしています。ここにその記録を綴っていきます。

正規表現かべうちのルール

  • 回答の正誤判定は regex101 でおこなう。特に指定がない場合は Pythonフレーバー 、オプションは g(global) ・ m(multi-line) ・ u(unicode) を使用。
  • AIの挙げたサンプルテキスト内で条件通りにマッチできればOKとする。余力があれば例外処理を付け加えても可。
  • 文字列の並び方について言及する場合、前後左右や手前などの言い方をせず、先読みの方向を 「先方向」 、後読みの方向を 「後方向」 と表記する。

【第8問】

マッチさせたい条件

角カッコ [ と ] で囲まれた1桁以上の数字のうち、開きカッコ [ のすぐ後方向に TAG: という文字列が存在し、かつ閉じカッコ ] のすぐ先方向に =active という文字列が存在する数字部分のみにマッチさせてください。

マッチング検証用テキスト

TAG:[123]=active
TAG:[abc]=active
[123]=active
TAG:[456]
INFO:[789]=active
TAG:[90]=inactive
TAG:100=active
TAG:[55]=active

マッチ結果の文字列

123
55

私の回答

(?<=TAG:\[)[\d]+(?=\]=active)

regex-exercise-008.jpg

regex101: build, test, and debug regex

おわりに

このシリーズは 正規表現かべうち タグでまとめています。