Java UUID 正則表達式
UUID,即通用唯一識別碼(Universally Unique Identifier)。
UUID的介紹(來自百度百科)
UUID是指在一臺機器上生成的數字,它保證對在同一時空中的所有機器都是唯一的。
UUID由以下幾部分的組合:
(1)當前日期和時間,UUID的第一個部分與時間有關,如果你在生成一個UUID之後,過幾秒又生成一個UUID,則第一個部分不同,其餘相同。
(2)時鐘序列。
(3)全局唯一的IEEE機器識別號,如果有網卡,從網卡MAC地址獲得,沒有網卡以其他方式獲得。
標準的UUID的格式:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
(8-4-4-4-12)
其中每個x表示一個16進制的數字(小寫)。即共32的16進制的數字,使用分隔符,分割成8-4-4-4-12五部分。
用正則表達式表示爲:
[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}
對應可以編寫Java 工具類:
package com.ysx.pattern;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author youngbear
* @email [email protected]
* @date 2019-04-23 22:50
* @blog https://blog.csdn.net/next_second
* @github https://github.com/YoungBear
* @description
*/
public class UUIDPattern {
/**
* 標準的UUID
* 32位16進制的數字,用分隔符分成8-4-4-4-12的格式
*/
private static final Pattern UUID_PATTERN = Pattern.compile("[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}");
/**
* 判斷一個字符串是否是有效的UUID
*
* @param uuid
* @return
*/
public static boolean isValidUUID(String uuid) {
Matcher matcher = UUID_PATTERN.matcher(uuid);
return matcher.matches();
}
/**
* 隨機生成UUID
*
* @return
*/
public static String uuid() {
return UUID.randomUUID().toString();
}
}