refactor!: 删除 RegexTools
中以 String[]
作为多个正则表达式入参的方法
字符串无法代表一个正则表达式,还需考虑正则表达式的 flag(s),所以当使用多个正则表达式时,更推荐使用 `Pattern[]`。
This commit is contained in:
parent
b70e526509
commit
3b519105bf
@ -61,31 +61,6 @@ public final class RegexTools {
|
||||
return getPatternInternal(pattern);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将各个正则表达式转为 {@link Pattern} 实例。
|
||||
*
|
||||
* @param patterns 正则表达式
|
||||
* @param cachePattern 是否缓存 {@link Pattern} 实例
|
||||
* @return {@link Pattern} 实例数组
|
||||
*/
|
||||
public static Pattern[] getPatterns(final String[] patterns, final boolean cachePattern) {
|
||||
AssertTools.checkArgument(ArrayTools.isAllElementsNotNull(patterns));
|
||||
return cachePattern
|
||||
? cacheAndGetPatternsInternal(patterns)
|
||||
: getPatternsInternal(patterns);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将各个正则表达式转为 {@link Pattern} 实例,不缓存。
|
||||
*
|
||||
* @param patterns 正则表达式
|
||||
* @return {@link Pattern} 实例数组
|
||||
*/
|
||||
public static Pattern[] getPatterns(final String[] patterns) {
|
||||
AssertTools.checkArgument(ArrayTools.isAllElementsNotNull(patterns));
|
||||
return getPatternsInternal(patterns);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断 {@code input} 是否匹配 {@code pattern}。
|
||||
*
|
||||
@ -151,66 +126,6 @@ public final class RegexTools {
|
||||
return matchesInternal(input, getPatternInternal(pattern));
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断 {@code input} 是否匹配 {@code patterns} 中的一个。
|
||||
*
|
||||
* @param input 输入
|
||||
* @param patterns 正则表达式
|
||||
* @param cachePattern 是否缓存 {@link Pattern} 实例
|
||||
* @return 判断结果
|
||||
*/
|
||||
public static boolean matchesOne(@Nullable final CharSequence input, final String[] patterns,
|
||||
final boolean cachePattern) {
|
||||
AssertTools.checkArgument(ArrayTools.isAllElementsNotNull(patterns));
|
||||
final Pattern[] patternSet = cachePattern
|
||||
? cacheAndGetPatternsInternal(patterns)
|
||||
: getPatternsInternal(patterns);
|
||||
return matchesOneInternal(input, patternSet);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断 {@code input} 是否匹配 {@code patterns} 中的一个。不缓存 {@link Pattern} 实例。
|
||||
*
|
||||
* @param input 输入
|
||||
* @param patterns 正则表达式
|
||||
* @return 判断结果
|
||||
*/
|
||||
public static boolean matchesOne(@Nullable final CharSequence input, final String[] patterns) {
|
||||
AssertTools.checkArgument(ArrayTools.isAllElementsNotNull(patterns));
|
||||
final Pattern[] patternSet = getPatternsInternal(patterns);
|
||||
return matchesOneInternal(input, patternSet);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断 {@code input} 是否匹配全部正则。
|
||||
*
|
||||
* @param input 输入
|
||||
* @param patterns 正则表达式
|
||||
* @param cachePattern 是否缓存 {@link Pattern} 实例
|
||||
* @return 判断结果
|
||||
*/
|
||||
public static boolean matchesAll(@Nullable final CharSequence input, final String[] patterns,
|
||||
final boolean cachePattern) {
|
||||
AssertTools.checkArgument(ArrayTools.isAllElementsNotNull(patterns));
|
||||
final Pattern[] patternSet = cachePattern
|
||||
? cacheAndGetPatternsInternal(patterns)
|
||||
: getPatternsInternal(patterns);
|
||||
return matchesAllInternal(input, patternSet);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断 {@code input} 是否匹配全部正则。不缓存 {@link Pattern} 实例。
|
||||
*
|
||||
* @param input 输入
|
||||
* @param patterns 正则表达式
|
||||
* @return 判断结果
|
||||
*/
|
||||
public static boolean matchesAll(@Nullable final CharSequence input, final String[] patterns) {
|
||||
AssertTools.checkArgument(ArrayTools.isAllElementsNotNull(patterns));
|
||||
final Pattern[] patternSet = getPatternsInternal(patterns);
|
||||
return matchesAllInternal(input, patternSet);
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成 Matcher。
|
||||
*
|
||||
@ -289,32 +204,6 @@ public final class RegexTools {
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将各个正则表达式转为 {@link Pattern} 实例。
|
||||
*
|
||||
* @param patterns 正则表达式
|
||||
* @return {@link Pattern} 实例数组
|
||||
*/
|
||||
@Nonnull
|
||||
private static Pattern[] cacheAndGetPatternsInternal(final String[] patterns) {
|
||||
return Arrays.stream(patterns)
|
||||
.map(RegexTools::cacheAndGetPatternInternal)
|
||||
.toArray(Pattern[]::new);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将各个正则表达式转为 {@link Pattern} 实例。
|
||||
*
|
||||
* @param patterns 正则表达式
|
||||
* @return {@link Pattern} 实例数组
|
||||
*/
|
||||
@Nonnull
|
||||
private static Pattern[] getPatternsInternal(final String[] patterns) {
|
||||
return Arrays.stream(patterns)
|
||||
.map(RegexTools::getPatternInternal)
|
||||
.toArray(Pattern[]::new);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断 {@code input} 是否匹配 {@code pattern}。
|
||||
*
|
||||
|
@ -55,31 +55,6 @@ class RegexToolsTests {
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
void getPatterns_CachePatternTrue_ReturnsCachedPatterns() {
|
||||
String[] patterns = {"abc", "def"};
|
||||
Pattern[] cachedPatterns = RegexTools.getPatterns(patterns, true);
|
||||
Pattern[] patternsFromCache = RegexTools.getPatterns(patterns, true);
|
||||
assertSame(cachedPatterns[0], patternsFromCache[0]);
|
||||
assertSame(cachedPatterns[1], patternsFromCache[1]);
|
||||
}
|
||||
|
||||
@Test
|
||||
void getPatterns_CachePatternFalse_ReturnsNewPatterns() {
|
||||
String[] patterns = {"getPatterns_CachePatternFalse_ReturnsNewPatterns1", "getPatterns_CachePatternFalse_ReturnsNewPatterns2"};
|
||||
Pattern[] patterns1 = RegexTools.getPatterns(patterns, false);
|
||||
Pattern[] patterns2 = RegexTools.getPatterns(patterns, false);
|
||||
assertNotSame(patterns1[0], patterns2[0]);
|
||||
assertNotSame(patterns1[1], patterns2[1]);
|
||||
}
|
||||
|
||||
@Test
|
||||
void getPatterns_NullPatterns_ThrowsException() {
|
||||
assertThrows(IllegalArgumentException.class, () -> {
|
||||
RegexTools.getPatterns(null, true);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
void matches_InputMatchesPattern_ReturnsTrue() {
|
||||
String pattern = "abc";
|
||||
|
Loading…
x
Reference in New Issue
Block a user