@@ -270,11 +270,11 @@ extension UTS18Tests {
270
270
09 \u{85} \
271
271
10 \u{2028} \
272
272
11 \u{2029} \
273
-
273
+ 12
274
274
"""
275
275
// Check the input counts
276
276
var lines = lineInput. matches ( of: regex ( #"\d{2}"# ) )
277
- XCTAssertEqual ( lines. count, 11 )
277
+ XCTAssertEqual ( lines. count, 12 )
278
278
// Test \R - newline sequence
279
279
lines = lineInput. matches ( of: regex ( #"\d{2}\R^"# ) . anchorsMatchLineEndings ( ) )
280
280
XCTAssertEqual ( lines. count, 11 )
@@ -283,20 +283,31 @@ extension UTS18Tests {
283
283
XCTAssertEqual ( lines. count, 11 )
284
284
// Test anchors as line boundaries
285
285
lines = lineInput. matches ( of: regex ( #"^\d{2}$"# ) . anchorsMatchLineEndings ( ) )
286
- XCTAssertEqual ( lines. count, 11 )
286
+ XCTAssertEqual ( lines. count, 12 )
287
287
// Test that dot does not match line endings
288
288
lines = lineInput. matches ( of: regex ( #".+"# ) )
289
- XCTAssertEqual ( lines. count, 11 )
289
+ XCTAssertEqual ( lines. count, 12 )
290
290
291
291
// Unicode scalar semantics - \R still matches all, including \r\n sequence
292
292
lines = lineInput. matches (
293
293
of: regex ( #"\d{2}\R^"# ) . matchingSemantics ( . unicodeScalar) . anchorsMatchLineEndings ( ) )
294
294
XCTAssertEqual ( lines. count, 11 )
295
+ lines = lineInput. matches (
296
+ of: regex ( #"\d{2}\R(?=\d)"# ) . matchingSemantics ( . unicodeScalar) . anchorsMatchLineEndings ( ) )
297
+ XCTAssertEqual ( lines. count, 11 )
295
298
XCTAssertNotNil ( lineInput. firstMatch (
296
299
of: regex ( #"08\R^"# ) . matchingSemantics ( . unicodeScalar) . anchorsMatchLineEndings ( ) ) )
297
300
// Unicode scalar semantics - \v matches all except for \r\n sequence
301
+ print ( " \n \n \n ------- " , #line, " \n \n \n " )
298
302
lines = lineInput. matches (
299
303
of: regex ( #"\d{2}\v^"# ) . matchingSemantics ( . unicodeScalar) . anchorsMatchLineEndings ( ) )
304
+
305
+ print ( lines. map { " \n \n ``` \( $0. 0 ) ``` \n \n " } . joined ( ) )
306
+
307
+ XCTAssertEqual ( lines. count, 10 )
308
+ print ( " \n \n \n ------- " , #line, " \n \n \n " )
309
+ lines = lineInput. matches (
310
+ of: regex ( #"\d{2}\v(?=\d)"# ) . matchingSemantics ( . unicodeScalar) . anchorsMatchLineEndings ( ) )
300
311
XCTAssertEqual ( lines. count, 10 )
301
312
XCTAssertNil ( lineInput. firstMatch (
302
313
of: regex ( #"08\v^"# ) . matchingSemantics ( . unicodeScalar) . anchorsMatchLineEndings ( ) ) )
0 commit comments