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