Оптимизированным выражением для нахождения последней строки большой входной строки будет такое, которое вводит явные границы:
(?m)^.*\z
В таких языках, как PHP, он будет записан как /^.*\z/m
(/
s - это разделители, а m
- многострочный флаг). Знак ^
заставляет двигатель не проходить через .*
(зло) регулярное выражение, если оно не соответствует. Таким образом, мы определили очень хорошо известную границу не только для того, чтобы распознать нужную деталь, но также для двигателей и их встроенных оптимизаций.
Производительность этого регулярного выражения зависит от количества строк входной строки. Таким образом, входная строка , такая как ваша , не является проблемой вообще, но что-то , подобное , привлечет некоторое внимание.
В обоих случаях он работает быстро и не выходит из строя.