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));