This is an automated email from the ASF dual-hosted git repository.

garydgregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-lang.git


The following commit(s) were added to refs/heads/master by this push:
     new 6c4269eb8 fix WordUtils.containsAllWords missing words across line 
breaks (#1732)
6c4269eb8 is described below

commit 6c4269eb8a2aeb722ee81a41a4a88a46c2deccf8
Author: alhuda <[email protected]>
AuthorDate: Fri Jun 26 00:40:39 2026 +0530

    fix WordUtils.containsAllWords missing words across line breaks (#1732)
---
 src/main/java/org/apache/commons/lang3/text/WordUtils.java     | 2 +-
 src/test/java/org/apache/commons/lang3/text/WordUtilsTest.java | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/commons/lang3/text/WordUtils.java 
b/src/main/java/org/apache/commons/lang3/text/WordUtils.java
index e7c4907c5..9c14ad609 100644
--- a/src/main/java/org/apache/commons/lang3/text/WordUtils.java
+++ b/src/main/java/org/apache/commons/lang3/text/WordUtils.java
@@ -198,7 +198,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/lang3/text/WordUtilsTest.java 
b/src/test/java/org/apache/commons/lang3/text/WordUtilsTest.java
index 8554d05db..1f43e783f 100644
--- a/src/test/java/org/apache/commons/lang3/text/WordUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/text/WordUtilsTest.java
@@ -170,6 +170,14 @@ void testContainsAllWords_StringString() {
         assertFalse(WordUtils.containsAllWords("ab", "z"));
     }
 
+    @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 testInitials_String() {
         assertNull(WordUtils.initials(null));

Reply via email to