diff --git a/src/main/java/org/apache/commons/text/WordUtils.java b/src/main/java/org/apache/commons/text/WordUtils.java index e03024a403..59ac636b89 100644 --- a/src/main/java/org/apache/commons/text/WordUtils.java +++ b/src/main/java/org/apache/commons/text/WordUtils.java @@ -280,7 +280,7 @@ public static boolean containsAllWords(final CharSequence word, final CharSequen if (StringUtils.isBlank(w)) { return false; } - final Pattern p = Pattern.compile(".*\\b" + Pattern.quote(w.toString()) + "\\b.*"); + final Pattern p = Pattern.compile(".*\\b" + Pattern.quote(w.toString()) + "\\b.*", Pattern.DOTALL); if (!p.matcher(word).matches()) { return false; } diff --git a/src/test/java/org/apache/commons/text/WordUtilsTest.java b/src/test/java/org/apache/commons/text/WordUtilsTest.java index 078ab1aebc..f88483df44 100644 --- a/src/test/java/org/apache/commons/text/WordUtilsTest.java +++ b/src/test/java/org/apache/commons/text/WordUtilsTest.java @@ -212,6 +212,14 @@ void testContainsAllWords_StringString() { assertTrue(WordUtils.containsAllWords("ab x", "ab", "x")); } + @Test + void testContainsAllWordsWithNewline() { + assertTrue(WordUtils.containsAllWords("foo\nbar", "bar")); + assertTrue(WordUtils.containsAllWords("foo\nbar", "foo")); + assertTrue(WordUtils.containsAllWords("lorem ipsum\ndolor sit\namet", "ipsum", "amet", "lorem")); + assertFalse(WordUtils.containsAllWords("foo\nbar", "baz")); + } + @Test void testContainsAllWordsWithNull() { assertFalse(WordUtils.containsAllWords("M", (CharSequence) null));