3

ここでUUID 正規表現に関する質問を既に見つけましたが、これらの表現では区切り記号の欠落が考慮されていません。

次の式を思いつきましたが、より最適な正規表現はありますか?

/\b([0-9a-f]{8}-?([0-9a-f]{4}-?){3}[0-9a-f]{12})\b/i

4

1 に答える 1

0

最適とは、より短い表現を意味すると想定しています。正規表現を次のように単純化しました。

/[\da-f]{8}-?([\da-f]{4}-?){3}[\da-f]{12}/i、ここで実際に見ることができます

外側の括弧を削除し\bました。これは、それらがなくてもすべてが正しく一致していたためです。[0-9a-f]また、 に置き換えることで3 文字削ることができました[\da-f]

私はもともと を持っていました[0-F]が、ASCII シーケンスを調べたところ、 が一致していることに気付きました。これには、一致さ 0123456789:;<=>?@ABCDEFせたくない余分な記号が含まれています。

結論として、私の表現はあなたの表現と同義ですが、9 文字少ないです。

于 2013-12-31T05:11:15.930 に答える