URLを表す正規表現の優秀さ比較

URLを表す正規表現の優秀さ比較(ChatGPT無料版)

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

という評価になります。