🟩 もくじ
URLを表す正規表現の優秀さ比較(ChatGPT無料版)
まず前提として、「優秀さ」の評価基準を定めないと点数は恣意的になります。
ここでは URL抽出用途 を想定し、以下の100点満点で評価します。
| 評価項目 | 配点 |
|---|---|
| 実際のURLを取りこぼしにくい | 40 |
| URL以外を誤って含みにくい | 30 |
| 保守性・可読性 | 15 |
| Onigmo依存性の少なさ | 15 |
総合順位
| 順位 | 正規表現 | 得点 | ||
|---|---|---|---|---|
| 1 | (https?://[^\s<>"']+) |
92 | ||
| 2 | (https?://[^\s<>"')]+) |
88 | ||
| 3 | (https?://[\w/:%#\$&\?\(\)~\.=\+\-]+) |
74 | ||
| 4 | (https?://[a-zA-Z0-9_\-\./%?&=#~@\+]+) |
71 |
Onigmo 6.2.0限定での私の評価
もし用途が
「テキストからURLを抽出する」
であるなら、
(https?://[^\s<>"']+)
を100点基準とした場合、
| 正規表現 | 相対評価 |
|---|---|
(https?://[^\s<>"']+) |
100 |
(https?://[^\s<>"')]+) |
96 |
(https?://[\w/:%#\$&\?\(\)~\.=\+\-]+) |
80 |
(https?://[a-zA-Z0-9_\-\./%?&=#~@\+]+) |
77 |
という評価になります。
特に Gemini案は「安全に見えるが、実URLの取りこぼしが意外と多い」 ため、URL抽出用途では既存2より少し下に評価します。逆に 「URLらしい文字列だけを厳しく拾いたい」 という用途なら Gemini案の方が高評価になります。