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

正規表現かべうち【第9問】最初と最後が同じ文字で、後方向に ID: があり先方向に _v2 がない英小文字列にマッチ

はじめに

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

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

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

【第9問】

マッチさせたい条件

アルファベット小文字のみで構成された3文字以上の文字列のうち、最初と最後の文字が同一であり、かつその文字列のすぐ後方向に ID: という文字列が存在し、かつすぐ先方向に _v2 という文字列が存在しない文字列部分のみにマッチさせてください。

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

ID:area_v1
ID:area_v2
ID:test_v1
ID:data_v1
NO:radar_v1
ID:aa_v1
ID:stats_v1
ID:level_v1
ID:level_v2

マッチ結果の文字列

area
test
stats
level

私の回答

(?<=ID:)([a-z])[a-z]+\1(?!_v2)
20260911_024102-1.jpg

regex101: build, test, and debug regex

おわりに

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