@@ -18,7 +18,7 @@ class RegexTest {
18
18
assertEquals(pattern, regex1.pattern)
19
19
assertEquals(setOf (RegexOption .IGNORE_CASE ), regex1.options)
20
20
21
- val options2 = setOf (RegexOption .MULTILINE , RegexOption .IGNORE_CASE )
21
+ val options2 = setOf (RegexOption .MULTILINE , RegexOption .IGNORE_CASE , RegexOption . DOT_MATCHES_ALL )
22
22
val regex2 = Regex (pattern, options2)
23
23
assertEquals(options2, regex2.options)
24
24
}
@@ -55,6 +55,21 @@ class RegexTest {
55
55
assertEquals(null , p.find(input, input.length))
56
56
}
57
57
58
+ @Test fun matchDotAllResult () {
59
+ val p = " \\ d+.\\ d+" .toRegex()
60
+ val input = " 123\n 456"
61
+
62
+ assertFalse(input matches p)
63
+ assertFalse(p matches input)
64
+ assertTrue(p in input)
65
+
66
+ val dap = p.pattern.toRegex(RegexOption .DOT_MATCHES_ALL )
67
+
68
+ assertTrue(input matches dap)
69
+ assertTrue(dap matches input)
70
+ assertTrue(dap in input)
71
+ }
72
+
58
73
@Test fun matchEscapeSurrogatePair () {
59
74
if (! supportsEscapeAnyCharInRegex) return
60
75
@@ -330,6 +345,11 @@ class RegexTest {
330
345
assertEquals(listOf (" test" , " " , " Line" ), matchedValues)
331
346
}
332
347
348
+ @Test fun matchDotAll () {
349
+ val regex = " ^.*$" .toRegex(RegexOption .DOT_MATCHES_ALL )
350
+ val matchedValues = regex.findAll(" test\n\n Line" ).map { it.value }.toList()
351
+ assertEquals(listOf (" test\n\n Line" ), matchedValues)
352
+ }
333
353
334
354
@Test fun matchEntire () {
335
355
val regex = " (\\ d)(\\ w)" .toRegex()
@@ -343,6 +363,17 @@ class RegexTest {
343
363
}
344
364
}
345
365
366
+ @Test fun matchEntireDotAll () {
367
+ val regex = " \\ d+.\\ d+" .toRegex(RegexOption .DOT_MATCHES_ALL )
368
+
369
+ assertNotNull(regex.matchEntire(" 123\n 456" )) { m ->
370
+ assertEquals(" 123\n 456" , m.value)
371
+ assertEquals(1 , m.groups.size)
372
+ assertEquals(listOf (" 123\n 456" ), m.groups.map { it!! .value })
373
+ assertNull(m.next())
374
+ }
375
+ }
376
+
346
377
@Test fun matchEntireLazyQuantor () {
347
378
val regex = " a+b+?" .toRegex()
348
379
val input = StringBuilder (" aaaabbbb" )
0 commit comments