115·2026.06.07

正規表現ゴリ押し部

正規表現
10

みなさん、正規表現は好きですか?
私は好きです。

なにせ判定条件がはっきりとコード上にありますからね。
これをマッチさせたいとか、あれをマッチさせたくないとか、それらがすべてコード上に明快に書かれていることのすばらしさよ!

例えばあなたが、技術記事のタイトルから AI / ML / LLM 関係のものか、そうでないものかを振り分けたいと思ったとしましょう。

そんなときは、こんな正規表現を書くと良いかもしれません。

[
  /(?<!転職)エージェント/,
  /\bAI\b/,
  /\bGPTs?\b/,
  /\bLLM\b/,
  /\bLVLM\b/,
  /\bMCP\b/,
  /\bRAG\b/,
  /\bv0\b/,
  /\bVLM\b/,
  /A2UI/,
  /Agent ?Framework/i,
  /Agent ?Memory/i,
  /Agent ?Networks?/i,
  /Agent ?Platform/i,
  /Agent ?Runtime/i,
  /Agent ?Sandbox/i,
  /Agent ?Script/i,
  /Agent ?Spec/i,
  /Agent ?Store/i,
  /Agent ?Core/i,
  /Agentforce/i,
  /Agentic/i,
  /AGENTS\.md/i,
  /AI ?Ops/i,
  /Amazon ?Nova/i,
  /Amazon ?Q/i,
  /Amazon ?Textract/i,
  /Anthropic/i,
  /Antigravity/i,
  /App ?Functions/i,
  /Auto ?GPT/i,
  /AWS ?Security ?Agent/i,
  /Bedrock/i,
  /BERT/,
  /Bolt\.new/i,
  /Cat ?Boost/i,
  /cc-sdd/i,
  /Chat ?GPT/i,
  /Claude/i,
  /CLAUDE\.md/i,
  /Cline/i,
  /Code ?Rabbit/i,
  /Codex/i,
  /Coding ?Agent/i,
  /Coding ?Assistant/i,
  /Colab/,
  /Comfy ?UI/i,
  /Context ?Engineering/i,
  /Copilot/i,
  /Cursor/i,
  /DALL[·\- ]?E/i,
  /Databricks/,
  /Deep ?Learning/i,
  /Deep ?Research/i,
  /Deep ?Mind/i,
  /Deep ?Seek/i,
  /Devin/i,
  /Dev ?Ops ?Agent/i,
  /Diffusion/i,
  /Dify/i,
  /Embedding/i,
  /FLUX\.2/i,
  /Foundation ?Models/i,
  /Gemini/i,
  /Gemma(?:\s*\d+(?:\.\d+)?[A-Za-z]?)?(?:\s*\d+B)?/i,
  /Gen ?AI/i,
  /GPU.{0,20}推論/i,
  /Graph ?RAG/i,
  /Harness ?Engineering/,
  /HITL/,
  /Hugging ?Face/i,
  /Hunyuan ?OCR/i,
  /Kaggle/i,
  /Kiro/i,
  /Lang ?Chain/i,
  /Lang ?Graph/i,
  /LLMO/,
  /LLM ?Ops/i,
  /llms\.txt/i,
  /LoRA/i,
  /Meta ?CLIP/i,
  /Midjourney/i,
  /ML ?flow/i,
  /ML ?Ops/i,
  /ML ?モデル/,
  /Model ?Context ?Protocol/i,
  /Mythos/,
  /Nano ?Banana/i,
  /NeMo ?ASR/i,
  /Notebook ?LM/i,
  /Ollama/i,
  /Open ?AI/i,
  /Open ?Claw/i,
  /Open ?Code/i,
  /OWL[- ]?ViT/i,
  /Perplexity/i,
  /PyTorch/i,
  /Qwen(?:\d+(?:\.\d+)?)?/i,
  /RecSys(?:\s*\d{0,4})?/,
  /Sage ?Maker/i,
  /SAM3/,
  /Skills/,
  /Sora(?:\s*\d{0,2})?/,
  /Spec ?Kit/,
  /Stable ?Diffusion/i,
  /Tensor ?Flow/i,
  /Tiny ?ML/i,
  /Transformers?/i,
  /Vibe ?Coding/i,
  /Vibe ?コーディング/i,
  /vLLM/i,
  /World ?Models/i,
  /YOLO/,
  /ヴァイブコーディング/,
  /コーディングエージェント/,
  /ディープラーニング/,
  /ニューラルネットワーク/,
  /バイブコーディング/,
  /パターン生成/,
  /ファインチューニング/,
  /プロンプトインジェクション/,
  /プロンプトエンジニアリング/,
  /ベクトル検索/,
  /マルチモーダル/,
  /世界モデル/,
  /人工知能/,
  /仕様駆動/,
  /基盤モデル/,
  /大規模モデル/,
  /大規模言語モデル/,
  /強化学習/,
  /拡散モデル/,
  /文章ベクトル/,
  /検索モデル/,
  /機械学習/,
  /生成 ?AI/,
  /生成モデル/,
  /生成画像/,
  /生成系/,
  /画像生成/,
  /画像認識/,
  /自然言語処理/,
  /言語モデル/,
  /音声認識/,
]

ちょっと長いですか?
でも、やっていることははっきりとしてますね。

たった 150 パターンにも満たないこの正規表現は、手元のタイトル群では 99% 以上の精度で記事を振り分けられます。

この正規表現はシンプルで、こったところといえば \b で単語境界を見るだとか i で ignore-case するだとか、ほとんどそれくらいのことしかやってません。

もしこれを 99.99% の精度にしようと思うと、正規表現だけでは足りないかもしれません。
でも、99% の精度で良ければ、これでじゅうぶんなのです。

なにもかもがブラックボックス化していく現代に、このシンプルな文字の羅列は、きちんと仕事をしてくれます。
もし、それ以上のことをしたくなったら、そのときにはじめて正規表現以外の手段を考えれば良いのです。

あなたも今日から正規表現を育てて、それでゴリ押ししてみませんか?

コメント (0)