return RegExUtils.removePattern(source, regex);
return RegExUtils.removeAll(text, regex);
return replaceAll(text, regex, StringUtils.EMPTY);
/** * <p>Removes each substring of the source String that matches the given regular expression using the DOTALL option.</p> * * This call is a {@code null} safe equivalent to: * <ul> * <li>{@code text.replaceAll("(?s)" + regex, StringUtils.EMPTY)}</li> * <li>{@code Pattern.compile(regex, Pattern.DOTALL).matcher(text).replaceAll(StringUtils.EMPTY)}</li> * </ul> * * <p>A {@code null} reference passed to this method is a no-op.</p> * * <pre> * StringUtils.removePattern(null, *) = null * StringUtils.removePattern("any", (String) null) = "any" * StringUtils.removePattern("A<__>\n<__>B", "<.*>") = "AB" * StringUtils.removePattern("ABCabc123", "[a-z]") = "ABC123" * </pre> * * @param text * the source string * @param regex * the regular expression to which this string is to be matched * @return The resulting {@code String} * @see #replacePattern(String, String, String) * @see String#replaceAll(String, String) * @see Pattern#DOTALL */ public static String removePattern(final String text, final String regex) { return replacePattern(text, regex, StringUtils.EMPTY); }
return replaceFirst(text, regex, StringUtils.EMPTY);
return RegExUtils.replacePattern(source, regex, replacement);
return replaceFirst(text, regex, StringUtils.EMPTY);
@Test public void testRemovePattern_StringString() { assertNull(RegExUtils.removePattern(null, "")); assertEquals("any", RegExUtils.removePattern("any", (String) null)); assertEquals("", RegExUtils.removePattern("", "")); assertEquals("", RegExUtils.removePattern("", ".*")); assertEquals("", RegExUtils.removePattern("", ".+")); assertEquals("AB", RegExUtils.removePattern("A<__>\n<__>B", "<.*>")); assertEquals("AB", RegExUtils.removePattern("A<__>\\n<__>B", "<.*>")); assertEquals("", RegExUtils.removePattern("<A>x\\ny</A>", "<A>.*</A>")); assertEquals("", RegExUtils.removePattern("<A>\nxy\n</A>", "<A>.*</A>")); assertEquals("ABC123", RegExUtils.removePattern("ABCabc123", "[a-z]")); }
@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))); }
return replaceAll(text, regex, StringUtils.EMPTY);
@Test public void testReplacePattern_StringStringString() { assertNull(RegExUtils.replacePattern(null, "", "")); assertEquals("any", RegExUtils.replacePattern("any", (String) null, "")); assertEquals("any", RegExUtils.replacePattern("any", "", null)); assertEquals("zzz", RegExUtils.replacePattern("", "", "zzz")); assertEquals("zzz", RegExUtils.replacePattern("", ".*", "zzz")); assertEquals("", RegExUtils.replacePattern("", ".+", "zzz")); assertEquals("z", RegExUtils.replacePattern("<__>\n<__>", "<.*>", "z")); assertEquals("z", RegExUtils.replacePattern("<__>\\n<__>", "<.*>", "z")); assertEquals("X", RegExUtils.replacePattern("<A>\nxy\n</A>", "<A>.*</A>", "X")); 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")); }
return RegExUtils.replaceFirst(text, regex, replacement);
return RegExUtils.removePattern(source, regex);
@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 } }
return RegExUtils.replaceAll(text, regex, replacement);
/** * <p>Removes each substring of the source String that matches the given regular expression using the DOTALL option.</p> * * This call is a {@code null} safe equivalent to: * <ul> * <li>{@code text.replaceAll("(?s)" + regex, StringUtils.EMPTY)}</li> * <li>{@code Pattern.compile(regex, Pattern.DOTALL).matcher(text).replaceAll(StringUtils.EMPTY)}</li> * </ul> * * <p>A {@code null} reference passed to this method is a no-op.</p> * * <pre> * StringUtils.removePattern(null, *) = null * StringUtils.removePattern("any", (String) null) = "any" * StringUtils.removePattern("A<__>\n<__>B", "<.*>") = "AB" * StringUtils.removePattern("ABCabc123", "[a-z]") = "ABC123" * </pre> * * @param text * the source string * @param regex * the regular expression to which this string is to be matched * @return The resulting {@code String} * @see #replacePattern(String, String, String) * @see String#replaceAll(String, String) * @see Pattern#DOTALL */ public static String removePattern(final String text, final String regex) { return replacePattern(text, regex, StringUtils.EMPTY); }
@Test public void testReplaceFirst_StringPatternString() { assertNull(RegExUtils.replaceFirst(null, Pattern.compile(""), "")); assertEquals("any", RegExUtils.replaceFirst("any", (Pattern) null, "")); assertEquals("any", RegExUtils.replaceFirst("any", Pattern.compile(""), null)); 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\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")); }
return RegExUtils.removePattern(source, regex);
@Override public Map<String, Object> getAttributes(final HttpServletRequest request) { return Collections.list(request .getHeaderNames()) .stream() .filter(t -> t.toUpperCase().startsWith(PREFIX)) .filter(t -> StringUtils.isNotBlank(request.getHeader(t))) .map(t -> RegExUtils.removeAll(t, PREFIX)) .collect(Collectors.toMap(Function.identity(), t -> CollectionUtils.wrap(request.getHeader(PREFIX + t).split("(?<!\\\\);")))); } }
@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")); }