From 6f5de187df969e4ce10d7f310cc9a924facc38ba Mon Sep 17 00:00:00 2001 From: Looly Date: Thu, 5 Dec 2024 10:39:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96MAC=E5=9C=B0=E5=9D=80?= =?UTF-8?q?=E6=AD=A3=E5=88=99=EF=BC=88issue#IB95X4@Gitee=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/hutool/core/regex/PatternPool.java | 4 ++-- .../org/dromara/hutool/core/regex/RegexPool.java | 5 +++-- .../dromara/hutool/core/regex/IssueIB95X4Test.java | 14 ++++++++++++++ 3 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 hutool-core/src/test/java/org/dromara/hutool/core/regex/IssueIB95X4Test.java diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/regex/PatternPool.java b/hutool-core/src/main/java/org/dromara/hutool/core/regex/PatternPool.java index 060c6e615..b57f92715 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/regex/PatternPool.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/regex/PatternPool.java @@ -136,7 +136,7 @@ public class PatternPool { /** * UUID */ - public final static Pattern UUID = Pattern.compile(RegexPool.UUID, Pattern.CASE_INSENSITIVE); + public final static Pattern UUID = Pattern.compile(RegexPool.UUID); /** * 不带横线的UUID */ @@ -144,7 +144,7 @@ public class PatternPool { /** * MAC地址正则 */ - public static final Pattern MAC_ADDRESS = Pattern.compile(RegexPool.MAC_ADDRESS, Pattern.CASE_INSENSITIVE); + public static final Pattern MAC_ADDRESS = Pattern.compile(RegexPool.MAC_ADDRESS); /** * 16进制字符串 */ diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/regex/RegexPool.java b/hutool-core/src/main/java/org/dromara/hutool/core/regex/RegexPool.java index 5fdbd7ed2..d543247ba 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/regex/RegexPool.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/regex/RegexPool.java @@ -136,7 +136,7 @@ public interface RegexPool { /** * UUID */ - String UUID = "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"; + String UUID = "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"; /** * 不带横线的UUID */ @@ -144,7 +144,8 @@ public interface RegexPool { /** * MAC地址正则 */ - String MAC_ADDRESS = "((?:[a-fA-F0-9]{1,2}[:-]){5}[a-fA-F0-9]{1,2})|0x(\\d{12}).+ETHER"; + //String MAC_ADDRESS = "((?:[a-fA-F0-9]{1,2}[:-]){5}[a-fA-F0-9]{1,2})|0x(\\d{12}).+ETHER"; + String MAC_ADDRESS = "((?:[a-fA-F0-9]{1,2}[:-]){5}[a-fA-F0-9]{1,2})|((?:[a-fA-F0-9]{1,4}[.]){2}[a-fA-F0-9]{1,4})|[a-fA-F0-9]{12}|0x(\\d{12}).+ETHER"; /** * 16进制字符串 */ diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/regex/IssueIB95X4Test.java b/hutool-core/src/test/java/org/dromara/hutool/core/regex/IssueIB95X4Test.java new file mode 100644 index 000000000..ce61fb858 --- /dev/null +++ b/hutool-core/src/test/java/org/dromara/hutool/core/regex/IssueIB95X4Test.java @@ -0,0 +1,14 @@ +package org.dromara.hutool.core.regex; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class IssueIB95X4Test { + @Test + void isMacTest() { + Assertions.assertTrue(ReUtil.isMatch(PatternPool.MAC_ADDRESS, "ab1c.2d3e.f468")); + Assertions.assertTrue(ReUtil.isMatch(PatternPool.MAC_ADDRESS, "ab:1c:2d:3e:f4:68")); + Assertions.assertTrue(ReUtil.isMatch(PatternPool.MAC_ADDRESS, "ab-1c-2d-3e-f4-68")); + Assertions.assertTrue(ReUtil.isMatch(PatternPool.MAC_ADDRESS, "ab1c2d3ef468")); + } +}