PHP preg_match UUID v4

Pav*_*Pav 5 php uuid preg-match

我有一个包含UUID v4的字符串

$uuid = 'http://domain.com/images/123/b85066fc-248f-4ea9-b13d-0858dbf4efc1_small.jpg';
Run Code Online (Sandbox Code Playgroud)

我如何b85066fc-248f-4ea9-b13d-0858dbf4efc1从上面使用preg_match()
有关UUID v4的更多信息,请点击此处

Nem*_*den 12

$uuid = 'http://domain.com/images/123/b85066fc-248f-4ea9-b13d-0858dbf4efc1_small.jpg';
preg_match('!/images/\d+/([a-z0-9\-]*)_!i', $uuid, $m);
Run Code Online (Sandbox Code Playgroud)

preg_match('/[a-f0-9]{8}\-[a-f0-9]{4}\-4[a-f0-9]{3}\-(8|9|a|b)[a-f0-9]{3??}\-[a-f0-9]{12}/', $uuid, $m);
Run Code Online (Sandbox Code Playgroud)

也有效.从这里开始,但我不知道我们是否可以依靠它.

  • 更严格的正则表达式是`/ [a-f0-9] {8}\ - [a-f0-9] {4}\ - 4 [a-f0-9] {3}\ - (8 | 9 | A | b)[A-f0-9] {3}\ - [A-f0-9] {12} /` (13认同)
  • 如果正则表达式虽然看起来正确但不起作用:在 html 源代码中显示的代码示例中有一些不可见的字符:‌​ 没有代码高亮的工作版本:/[a-f0-9]{8}\-[a-f0-9]{4}\-4[a-f0-9]{3}\-(8|9|a) |b)[a-f0-9]{3}\-[a-f0-9]{12}/ (2认同)

小智 6

你可以为uuids尝试这个简单的模式

preg_match('/\w{8}-\w{4}-\w{4}-\w{4}-\w{12}/',$uuid,$matches);
Run Code Online (Sandbox Code Playgroud)