115·2026.06.06

正規表現ゴリ押し部

正規表現
3

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

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

例えばあなたが、技術記事のタイトルから 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,
  /AgentCore/i,
  /Agentforce/i,
  /Agentic/i,
  /AGENTS\.md/i,
  /AIOps/i,
  /Amazon ?Nova/i,
  /Amazon ?Q/i,
  /Amazon ?Textract/i,
  /Anthropic/i,
  /Antigravity/i,
  /AppFunctions/i,
  /AutoGPT/i,
  /AWS ?Security ?Agent/i,
  /Bedrock/i,
  /BERT/,
  /Bolt\.new/i,
  /CatBoost/i,
  /cc-sdd/i,
  /ChatGPT/i,
  /Claude/i,
  /CLAUDE\.md/i,
  /Cline/i,
  /CodeRabbit/i,
  /Codex/i,
  /Coding ?Agent/i,
  /Coding ?Assistant/i,
  /Colab/,
  /ComfyUI/i,
  /Context Engineering/i,
  /Copilot/i,
  /Cursor/i,
  /DALL[·\- ]?E/i,
  /Databricks/,
  /Deep ?Learning/i,
  /Deep ?Research/i,
  /DeepMind/i,
  /DeepSeek/i,
  /Devin/i,
  /DevOps 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,
  /GenAI/i,
  /GPU.{0,20}推論/i,
  /GraphRAG/i,
  /Harness Engineering/,
  /HITL/,
  /Hugging ?Face/i,
  /HunyuanOCR/i,
  /Kaggle/i,
  /Kiro/i,
  /LangChain/i,
  /LangGraph/i,
  /LLMO/,
  /LLMOps/i,
  /llms\.txt/i,
  /LoRA/i,
  /Meta ?CLIP/i,
  /Midjourney/i,
  /MLflow/i,
  /MLOps/i,
  /MLモデル/,
  /Model ?Context ?Protocol/i,
  /Mythos/,
  /Nano ?Banana/i,
  /NeMo ?ASR/i,
  /Notebook ?LM/i,
  /Ollama/i,
  /OpenAI/i,
  /OpenClaw/i,
  /OpenCode/i,
  /OWL[- ]?ViT/i,
  /Perplexity/i,
  /PyTorch/i,
  /Qwen(?:\d+(?:\.\d+)?)?/i,
  /RecSys(?:\s*\d{0,4})?/,
  /SageMaker/i,
  /SAM3/,
  /Skills/,
  /Sora(?:\s*\d{0,2})?/,
  /Spec ?Kit/,
  /Stable ?Diffusion/i,
  /TensorFlow/i,
  /TinyML/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)