mirror of
https://github.com/apache/commons-lang.git
synced 2025-02-14 22:15:17 +00:00
[LANG-1238] Add RegexUtils class instead of overloadinh methods in
StringUtils that take a regex to take precompiled Pattern. Sort methods.
This commit is contained in:
parent
bcc4f82a7a
commit
54acb6e10f
@ -32,24 +32,84 @@
|
||||
public class RegExUtilsTest {
|
||||
|
||||
@Test
|
||||
public void testReplacePattern_StringStringString() {
|
||||
assertNull(RegExUtils.replacePattern(null, "", ""));
|
||||
assertEquals("any", RegExUtils.replacePattern("any", (String) null, ""));
|
||||
assertEquals("any", RegExUtils.replacePattern("any", "", null));
|
||||
public void testRemoveAll_StringPattern() {
|
||||
assertNull(RegExUtils.removeAll(null, Pattern.compile("")));
|
||||
assertEquals("any", RegExUtils.removeAll("any", (Pattern) null));
|
||||
|
||||
assertEquals("zzz", RegExUtils.replacePattern("", "", "zzz"));
|
||||
assertEquals("zzz", RegExUtils.replacePattern("", ".*", "zzz"));
|
||||
assertEquals("", RegExUtils.replacePattern("", ".+", "zzz"));
|
||||
assertEquals("any", RegExUtils.removeAll("any", Pattern.compile("")));
|
||||
assertEquals("", RegExUtils.removeAll("any", Pattern.compile(".*")));
|
||||
assertEquals("", RegExUtils.removeAll("any", Pattern.compile(".+")));
|
||||
assertEquals("", RegExUtils.removeAll("any", Pattern.compile(".?")));
|
||||
|
||||
assertEquals("z", RegExUtils.replacePattern("<__>\n<__>", "<.*>", "z"));
|
||||
assertEquals("z", RegExUtils.replacePattern("<__>\\n<__>", "<.*>", "z"));
|
||||
assertEquals("X", RegExUtils.replacePattern("<A>\nxy\n</A>", "<A>.*</A>", "X"));
|
||||
assertEquals("A\nB", RegExUtils.removeAll("A<__>\n<__>B", Pattern.compile("<.*>")));
|
||||
assertEquals("AB", RegExUtils.removeAll("A<__>\n<__>B", Pattern.compile("(?s)<.*>")));
|
||||
assertEquals("ABC123", RegExUtils.removeAll("ABCabc123abc", Pattern.compile("[a-z]")));
|
||||
|
||||
assertEquals("ABC___123", RegExUtils.replacePattern("ABCabc123", "[a-z]", "_"));
|
||||
assertEquals("ABC_123", RegExUtils.replacePattern("ABCabc123", "[^A-Z0-9]+", "_"));
|
||||
assertEquals("ABC123", RegExUtils.replacePattern("ABCabc123", "[^A-Z0-9]+", ""));
|
||||
assertEquals("Lorem_ipsum_dolor_sit",
|
||||
RegExUtils.replacePattern("Lorem ipsum dolor sit", "( +)([a-z]+)", "_$2"));
|
||||
assertEquals("AB", RegExUtils.removeAll("A<__>\n<__>B", Pattern.compile("<.*>", Pattern.DOTALL)));
|
||||
assertEquals("AB", RegExUtils.removeAll("A<__>\\n<__>B", Pattern.compile("<.*>")));
|
||||
assertEquals("", RegExUtils.removeAll("<A>x\\ny</A>", Pattern.compile("<A>.*</A>")));
|
||||
assertEquals("", RegExUtils.removeAll("<A>\nxy\n</A>", Pattern.compile("<A>.*</A>", Pattern.DOTALL)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRemoveAll_StringString() {
|
||||
assertNull(RegExUtils.removeAll(null, ""));
|
||||
assertEquals("any", RegExUtils.removeAll("any", (String) null));
|
||||
|
||||
assertEquals("any", RegExUtils.removeAll("any", ""));
|
||||
assertEquals("", RegExUtils.removeAll("any", ".*"));
|
||||
assertEquals("", RegExUtils.removeAll("any", ".+"));
|
||||
assertEquals("", RegExUtils.removeAll("any", ".?"));
|
||||
|
||||
assertEquals("A\nB", RegExUtils.removeAll("A<__>\n<__>B", "<.*>"));
|
||||
assertEquals("AB", RegExUtils.removeAll("A<__>\n<__>B", "(?s)<.*>"));
|
||||
assertEquals("ABC123", RegExUtils.removeAll("ABCabc123abc", "[a-z]"));
|
||||
|
||||
try {
|
||||
RegExUtils.removeAll("any", "{badRegexSyntax}");
|
||||
fail("RegExUtils.removeAll expecting PatternSyntaxException");
|
||||
} catch (final PatternSyntaxException ex) {
|
||||
// empty
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRemoveFirst_StringPattern() {
|
||||
assertNull(RegExUtils.removeFirst(null, Pattern.compile("")));
|
||||
assertEquals("any", RegExUtils.removeFirst("any", (Pattern) null));
|
||||
|
||||
assertEquals("any", RegExUtils.removeFirst("any", Pattern.compile("")));
|
||||
assertEquals("", RegExUtils.removeFirst("any", Pattern.compile(".*")));
|
||||
assertEquals("", RegExUtils.removeFirst("any", Pattern.compile(".+")));
|
||||
assertEquals("bc", RegExUtils.removeFirst("abc", Pattern.compile(".?")));
|
||||
|
||||
assertEquals("A\n<__>B", RegExUtils.removeFirst("A<__>\n<__>B", Pattern.compile("<.*>")));
|
||||
assertEquals("AB", RegExUtils.removeFirst("A<__>\n<__>B", Pattern.compile("(?s)<.*>")));
|
||||
assertEquals("ABCbc123", RegExUtils.removeFirst("ABCabc123", Pattern.compile("[a-z]")));
|
||||
assertEquals("ABC123abc", RegExUtils.removeFirst("ABCabc123abc", Pattern.compile("[a-z]+")));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRemoveFirst_StringString() {
|
||||
assertNull(RegExUtils.removeFirst(null, ""));
|
||||
assertEquals("any", RegExUtils.removeFirst("any", (String) null));
|
||||
|
||||
assertEquals("any", RegExUtils.removeFirst("any", ""));
|
||||
assertEquals("", RegExUtils.removeFirst("any", ".*"));
|
||||
assertEquals("", RegExUtils.removeFirst("any", ".+"));
|
||||
assertEquals("bc", RegExUtils.removeFirst("abc", ".?"));
|
||||
|
||||
assertEquals("A\n<__>B", RegExUtils.removeFirst("A<__>\n<__>B", "<.*>"));
|
||||
assertEquals("AB", RegExUtils.removeFirst("A<__>\n<__>B", "(?s)<.*>"));
|
||||
assertEquals("ABCbc123", RegExUtils.removeFirst("ABCabc123", "[a-z]"));
|
||||
assertEquals("ABC123abc", RegExUtils.removeFirst("ABCabc123abc", "[a-z]+"));
|
||||
|
||||
try {
|
||||
RegExUtils.removeFirst("any", "{badRegexSyntax}");
|
||||
fail("RegExUtils.removeFirst expecting PatternSyntaxException");
|
||||
} catch (final PatternSyntaxException ex) {
|
||||
// empty
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -69,6 +129,32 @@ public void testRemovePattern_StringString() {
|
||||
assertEquals("ABC123", RegExUtils.removePattern("ABCabc123", "[a-z]"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReplaceAll_StringPatternString() {
|
||||
assertNull(RegExUtils.replaceAll(null, Pattern.compile(""), ""));
|
||||
|
||||
assertEquals("any", RegExUtils.replaceAll("any", (Pattern) null, ""));
|
||||
assertEquals("any", RegExUtils.replaceAll("any", Pattern.compile(""), null));
|
||||
|
||||
assertEquals("zzz", RegExUtils.replaceAll("", Pattern.compile(""), "zzz"));
|
||||
assertEquals("zzz", RegExUtils.replaceAll("", Pattern.compile(".*"), "zzz"));
|
||||
assertEquals("", RegExUtils.replaceAll("", Pattern.compile(".+"), "zzz"));
|
||||
assertEquals("ZZaZZbZZcZZ", RegExUtils.replaceAll("abc", Pattern.compile(""), "ZZ"));
|
||||
|
||||
assertEquals("z\nz", RegExUtils.replaceAll("<__>\n<__>", Pattern.compile("<.*>"), "z"));
|
||||
assertEquals("z", RegExUtils.replaceAll("<__>\n<__>", Pattern.compile("(?s)<.*>"), "z"));
|
||||
|
||||
assertEquals("z", RegExUtils.replaceAll("<__>\n<__>", Pattern.compile("<.*>", Pattern.DOTALL), "z"));
|
||||
assertEquals("z", RegExUtils.replaceAll("<__>\\n<__>", Pattern.compile("<.*>"), "z"));
|
||||
assertEquals("X", RegExUtils.replaceAll("<A>\nxy\n</A>", Pattern.compile("<A>.*</A>", Pattern.DOTALL), "X"));
|
||||
|
||||
assertEquals("ABC___123", RegExUtils.replaceAll("ABCabc123", Pattern.compile("[a-z]"), "_"));
|
||||
assertEquals("ABC_123", RegExUtils.replaceAll("ABCabc123", Pattern.compile("[^A-Z0-9]+"), "_"));
|
||||
assertEquals("ABC123", RegExUtils.replaceAll("ABCabc123", Pattern.compile("[^A-Z0-9]+"), ""));
|
||||
assertEquals("Lorem_ipsum_dolor_sit",
|
||||
RegExUtils.replaceAll("Lorem ipsum dolor sit", Pattern.compile("( +)([a-z]+)"), "_$2"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReplaceAll_StringStringString() {
|
||||
assertNull(RegExUtils.replaceAll(null, "", ""));
|
||||
@ -99,29 +185,25 @@ public void testReplaceAll_StringStringString() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReplaceAll_StringPatternString() {
|
||||
assertNull(RegExUtils.replaceAll(null, Pattern.compile(""), ""));
|
||||
public void testReplaceFirst_StringPatternString() {
|
||||
assertNull(RegExUtils.replaceFirst(null, Pattern.compile(""), ""));
|
||||
|
||||
assertEquals("any", RegExUtils.replaceAll("any", (Pattern) null, ""));
|
||||
assertEquals("any", RegExUtils.replaceAll("any", Pattern.compile(""), null));
|
||||
assertEquals("any", RegExUtils.replaceFirst("any", (Pattern) null, ""));
|
||||
assertEquals("any", RegExUtils.replaceFirst("any", Pattern.compile(""), null));
|
||||
|
||||
assertEquals("zzz", RegExUtils.replaceAll("", Pattern.compile(""), "zzz"));
|
||||
assertEquals("zzz", RegExUtils.replaceAll("", Pattern.compile(".*"), "zzz"));
|
||||
assertEquals("", RegExUtils.replaceAll("", Pattern.compile(".+"), "zzz"));
|
||||
assertEquals("ZZaZZbZZcZZ", RegExUtils.replaceAll("abc", Pattern.compile(""), "ZZ"));
|
||||
assertEquals("zzz", RegExUtils.replaceFirst("", Pattern.compile(""), "zzz"));
|
||||
assertEquals("zzz", RegExUtils.replaceFirst("", Pattern.compile(".*"), "zzz"));
|
||||
assertEquals("", RegExUtils.replaceFirst("", Pattern.compile(".+"), "zzz"));
|
||||
assertEquals("ZZabc", RegExUtils.replaceFirst("abc", Pattern.compile(""), "ZZ"));
|
||||
|
||||
assertEquals("z\nz", RegExUtils.replaceAll("<__>\n<__>", Pattern.compile("<.*>"), "z"));
|
||||
assertEquals("z", RegExUtils.replaceAll("<__>\n<__>", Pattern.compile("(?s)<.*>"), "z"));
|
||||
assertEquals("z\n<__>", RegExUtils.replaceFirst("<__>\n<__>", Pattern.compile("<.*>"), "z"));
|
||||
assertEquals("z", RegExUtils.replaceFirst("<__>\n<__>", Pattern.compile("(?s)<.*>"), "z"));
|
||||
|
||||
assertEquals("z", RegExUtils.replaceAll("<__>\n<__>", Pattern.compile("<.*>", Pattern.DOTALL), "z"));
|
||||
assertEquals("z", RegExUtils.replaceAll("<__>\\n<__>", Pattern.compile("<.*>"), "z"));
|
||||
assertEquals("X", RegExUtils.replaceAll("<A>\nxy\n</A>", Pattern.compile("<A>.*</A>", Pattern.DOTALL), "X"));
|
||||
|
||||
assertEquals("ABC___123", RegExUtils.replaceAll("ABCabc123", Pattern.compile("[a-z]"), "_"));
|
||||
assertEquals("ABC_123", RegExUtils.replaceAll("ABCabc123", Pattern.compile("[^A-Z0-9]+"), "_"));
|
||||
assertEquals("ABC123", RegExUtils.replaceAll("ABCabc123", Pattern.compile("[^A-Z0-9]+"), ""));
|
||||
assertEquals("Lorem_ipsum_dolor_sit",
|
||||
RegExUtils.replaceAll("Lorem ipsum dolor sit", Pattern.compile("( +)([a-z]+)"), "_$2"));
|
||||
assertEquals("ABC_bc123", RegExUtils.replaceFirst("ABCabc123", Pattern.compile("[a-z]"), "_"));
|
||||
assertEquals("ABC_123abc", RegExUtils.replaceFirst("ABCabc123abc", Pattern.compile("[^A-Z0-9]+"), "_"));
|
||||
assertEquals("ABC123abc", RegExUtils.replaceFirst("ABCabc123abc", Pattern.compile("[^A-Z0-9]+"), ""));
|
||||
assertEquals("Lorem_ipsum dolor sit",
|
||||
RegExUtils.replaceFirst("Lorem ipsum dolor sit", Pattern.compile("( +)([a-z]+)"), "_$2"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -154,106 +236,24 @@ public void testReplaceFirst_StringStringString() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReplaceFirst_StringPatternString() {
|
||||
assertNull(RegExUtils.replaceFirst(null, Pattern.compile(""), ""));
|
||||
public void testReplacePattern_StringStringString() {
|
||||
assertNull(RegExUtils.replacePattern(null, "", ""));
|
||||
assertEquals("any", RegExUtils.replacePattern("any", (String) null, ""));
|
||||
assertEquals("any", RegExUtils.replacePattern("any", "", null));
|
||||
|
||||
assertEquals("any", RegExUtils.replaceFirst("any", (Pattern) null, ""));
|
||||
assertEquals("any", RegExUtils.replaceFirst("any", Pattern.compile(""), null));
|
||||
assertEquals("zzz", RegExUtils.replacePattern("", "", "zzz"));
|
||||
assertEquals("zzz", RegExUtils.replacePattern("", ".*", "zzz"));
|
||||
assertEquals("", RegExUtils.replacePattern("", ".+", "zzz"));
|
||||
|
||||
assertEquals("zzz", RegExUtils.replaceFirst("", Pattern.compile(""), "zzz"));
|
||||
assertEquals("zzz", RegExUtils.replaceFirst("", Pattern.compile(".*"), "zzz"));
|
||||
assertEquals("", RegExUtils.replaceFirst("", Pattern.compile(".+"), "zzz"));
|
||||
assertEquals("ZZabc", RegExUtils.replaceFirst("abc", Pattern.compile(""), "ZZ"));
|
||||
assertEquals("z", RegExUtils.replacePattern("<__>\n<__>", "<.*>", "z"));
|
||||
assertEquals("z", RegExUtils.replacePattern("<__>\\n<__>", "<.*>", "z"));
|
||||
assertEquals("X", RegExUtils.replacePattern("<A>\nxy\n</A>", "<A>.*</A>", "X"));
|
||||
|
||||
assertEquals("z\n<__>", RegExUtils.replaceFirst("<__>\n<__>", Pattern.compile("<.*>"), "z"));
|
||||
assertEquals("z", RegExUtils.replaceFirst("<__>\n<__>", Pattern.compile("(?s)<.*>"), "z"));
|
||||
|
||||
assertEquals("ABC_bc123", RegExUtils.replaceFirst("ABCabc123", Pattern.compile("[a-z]"), "_"));
|
||||
assertEquals("ABC_123abc", RegExUtils.replaceFirst("ABCabc123abc", Pattern.compile("[^A-Z0-9]+"), "_"));
|
||||
assertEquals("ABC123abc", RegExUtils.replaceFirst("ABCabc123abc", Pattern.compile("[^A-Z0-9]+"), ""));
|
||||
assertEquals("Lorem_ipsum dolor sit",
|
||||
RegExUtils.replaceFirst("Lorem ipsum dolor sit", Pattern.compile("( +)([a-z]+)"), "_$2"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRemoveAll_StringString() {
|
||||
assertNull(RegExUtils.removeAll(null, ""));
|
||||
assertEquals("any", RegExUtils.removeAll("any", (String) null));
|
||||
|
||||
assertEquals("any", RegExUtils.removeAll("any", ""));
|
||||
assertEquals("", RegExUtils.removeAll("any", ".*"));
|
||||
assertEquals("", RegExUtils.removeAll("any", ".+"));
|
||||
assertEquals("", RegExUtils.removeAll("any", ".?"));
|
||||
|
||||
assertEquals("A\nB", RegExUtils.removeAll("A<__>\n<__>B", "<.*>"));
|
||||
assertEquals("AB", RegExUtils.removeAll("A<__>\n<__>B", "(?s)<.*>"));
|
||||
assertEquals("ABC123", RegExUtils.removeAll("ABCabc123abc", "[a-z]"));
|
||||
|
||||
try {
|
||||
RegExUtils.removeAll("any", "{badRegexSyntax}");
|
||||
fail("RegExUtils.removeAll expecting PatternSyntaxException");
|
||||
} catch (final PatternSyntaxException ex) {
|
||||
// empty
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRemoveAll_StringPattern() {
|
||||
assertNull(RegExUtils.removeAll(null, Pattern.compile("")));
|
||||
assertEquals("any", RegExUtils.removeAll("any", (Pattern) null));
|
||||
|
||||
assertEquals("any", RegExUtils.removeAll("any", Pattern.compile("")));
|
||||
assertEquals("", RegExUtils.removeAll("any", Pattern.compile(".*")));
|
||||
assertEquals("", RegExUtils.removeAll("any", Pattern.compile(".+")));
|
||||
assertEquals("", RegExUtils.removeAll("any", Pattern.compile(".?")));
|
||||
|
||||
assertEquals("A\nB", RegExUtils.removeAll("A<__>\n<__>B", Pattern.compile("<.*>")));
|
||||
assertEquals("AB", RegExUtils.removeAll("A<__>\n<__>B", Pattern.compile("(?s)<.*>")));
|
||||
assertEquals("ABC123", RegExUtils.removeAll("ABCabc123abc", Pattern.compile("[a-z]")));
|
||||
|
||||
assertEquals("AB", RegExUtils.removeAll("A<__>\n<__>B", Pattern.compile("<.*>", Pattern.DOTALL)));
|
||||
assertEquals("AB", RegExUtils.removeAll("A<__>\\n<__>B", Pattern.compile("<.*>")));
|
||||
assertEquals("", RegExUtils.removeAll("<A>x\\ny</A>", Pattern.compile("<A>.*</A>")));
|
||||
assertEquals("", RegExUtils.removeAll("<A>\nxy\n</A>", Pattern.compile("<A>.*</A>", Pattern.DOTALL)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRemoveFirst_StringString() {
|
||||
assertNull(RegExUtils.removeFirst(null, ""));
|
||||
assertEquals("any", RegExUtils.removeFirst("any", (String) null));
|
||||
|
||||
assertEquals("any", RegExUtils.removeFirst("any", ""));
|
||||
assertEquals("", RegExUtils.removeFirst("any", ".*"));
|
||||
assertEquals("", RegExUtils.removeFirst("any", ".+"));
|
||||
assertEquals("bc", RegExUtils.removeFirst("abc", ".?"));
|
||||
|
||||
assertEquals("A\n<__>B", RegExUtils.removeFirst("A<__>\n<__>B", "<.*>"));
|
||||
assertEquals("AB", RegExUtils.removeFirst("A<__>\n<__>B", "(?s)<.*>"));
|
||||
assertEquals("ABCbc123", RegExUtils.removeFirst("ABCabc123", "[a-z]"));
|
||||
assertEquals("ABC123abc", RegExUtils.removeFirst("ABCabc123abc", "[a-z]+"));
|
||||
|
||||
try {
|
||||
RegExUtils.removeFirst("any", "{badRegexSyntax}");
|
||||
fail("RegExUtils.removeFirst expecting PatternSyntaxException");
|
||||
} catch (final PatternSyntaxException ex) {
|
||||
// empty
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRemoveFirst_StringPattern() {
|
||||
assertNull(RegExUtils.removeFirst(null, Pattern.compile("")));
|
||||
assertEquals("any", RegExUtils.removeFirst("any", (Pattern) null));
|
||||
|
||||
assertEquals("any", RegExUtils.removeFirst("any", Pattern.compile("")));
|
||||
assertEquals("", RegExUtils.removeFirst("any", Pattern.compile(".*")));
|
||||
assertEquals("", RegExUtils.removeFirst("any", Pattern.compile(".+")));
|
||||
assertEquals("bc", RegExUtils.removeFirst("abc", Pattern.compile(".?")));
|
||||
|
||||
assertEquals("A\n<__>B", RegExUtils.removeFirst("A<__>\n<__>B", Pattern.compile("<.*>")));
|
||||
assertEquals("AB", RegExUtils.removeFirst("A<__>\n<__>B", Pattern.compile("(?s)<.*>")));
|
||||
assertEquals("ABCbc123", RegExUtils.removeFirst("ABCabc123", Pattern.compile("[a-z]")));
|
||||
assertEquals("ABC123abc", RegExUtils.removeFirst("ABCabc123abc", Pattern.compile("[a-z]+")));
|
||||
assertEquals("ABC___123", RegExUtils.replacePattern("ABCabc123", "[a-z]", "_"));
|
||||
assertEquals("ABC_123", RegExUtils.replacePattern("ABCabc123", "[^A-Z0-9]+", "_"));
|
||||
assertEquals("ABC123", RegExUtils.replacePattern("ABCabc123", "[^A-Z0-9]+", ""));
|
||||
assertEquals("Lorem_ipsum_dolor_sit",
|
||||
RegExUtils.replacePattern("Lorem ipsum dolor sit", "( +)([a-z]+)", "_$2"));
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user