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-text.git


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

commit f65ff30d4fdf373a083e3c3f931f479ca6eb3ef6
Author: alhuda <[email protected]>
AuthorDate: Fri Jun 26 16:42:24 2026 +0530

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

diff --git a/src/main/java/org/apache/commons/text/WordUtils.java 
b/src/main/java/org/apache/commons/text/WordUtils.java
index fea98c71..aeff4149 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 class WordUtils {
             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 f267f093..97c75de1 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 @@ class WordUtilsTest {
         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));

Reply via email to