import Foundation
let pattern = #"^Hi.*Page (\d+).*\n(.*)"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
Notes and highlights for
Outlive
Attia MD, Peter
Part I
Highlight (yellow) - Chapter 1: The Long Game: From Fast Death to Slow Death > Page 10 · Location 150
In 1900 , life expectancy hovered somewhere south of age fifty , and most people were likely to die from “ fast ” causes : accidents , injuries , and infectious diseases of various kinds . Since then , slow death has supplanted fast death . The majority of people reading this book can expect to die somewhere in their seventies or eighties , give or take , and almost all from “ slow ” causes .
Highlight (yellow) - Chapter 1: The Long Game: From Fast Death to Slow Death > Page 10 · Location 154
Four Horsemen : heart disease , cancer , neurodegenerative disease , or type 2 diabetes and related metabolic dysfunction .
Highlight (yellow) - Chapter 1: The Long Game: From Fast Death to Slow Death > Page 10 · Location 155
we must understand and confront these causes of slow death .
Highlight (yellow) - Chapter 1: The Long Game: From Fast Death to Slow Death > Page 10 · Location 158
Healthspan is typically defined as the period of life when we are free from disability or disease ,
Highlight (yellow) - Chapter 1: The Long Game: From Fast Death to Slow Death > Page 14 · Location 215
It is absurd and harmful to treat this disease like a cold or a broken bone , where you either have it or you don’t ; it’s not binary .
Highlight (yellow) - Chapter 1: The Long Game: From Fast Death to Slow Death > Page 14 · Location 218
Changing that mindset must be our first step in attacking slow death . We want to delay or prevent these conditions so that we can live longer without disease , rather than lingering with disease .
Highlight (yellow) - Chapter 1: The Long Game: From Fast Death to Slow Death > Page 17 · Location 270
Exercise is by far the most potent longevity “ drug . ” No other intervention does nearly as much to prolong our lifespan and preserve our cognitive and physical function .
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let substitutionString = #"> $2 [@attia:2023 p.$1]\n"#
let result = regex.stringByReplacingMatches(in: testString, range: stringRange, withTemplate: substitutionString)
print(result)
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Swift 5.2, please visit: https://developer.apple.com/documentation/foundation/nsregularexpression