ここでUUID 正規表現に関する質問を既に見つけましたが、これらの表現では区切り記号の欠落が考慮されていません。
次の式を思いつきましたが、より最適な正規表現はありますか?
/\b([0-9a-f]{8}-?([0-9a-f]{4}-?){3}[0-9a-f]{12})\b/i
最適とは、より短い表現を意味すると想定しています。正規表現を次のように単純化しました。
/[\da-f]{8}-?([\da-f]{4}-?){3}[\da-f]{12}/i
、ここで実際に見ることができます。
外側の括弧を削除し\b
ました。これは、それらがなくてもすべてが正しく一致していたためです。[0-9a-f]
また、 に置き換えることで3 文字削ることができました[\da-f]
。
私はもともと を持っていました[0-F]
が、ASCII シーケンスを調べたところ、 が一致していることに気付きました。これには、一致さ
0123456789:;<=>?@ABCDEF
せたくない余分な記号が含まれています。
結論として、私の表現はあなたの表現と同義ですが、9 文字少ないです。