Мне нужно захватить 3 группы из строки. Строка имеет следующий вид:
{phrase 1} {optional number} {optional phrase 2}
Вот несколько примеров:
Battery Bank 1
Battery Bank 1 Segments
Battery Bank 1 Warranty Logger
Battery Bank 10
Battery Bank 10 Segments
Battery Bank 10 Warranty Logger
BSU
BSU 1
PCS 3
PCS 1
System
System Meter
Как видите, единственная обязательная группа первый, состоящий из букв и пробелов в словах, пока не появится число, равное по крайней мере 1 ди git. Затем, опционально, еще одна группа символов слов и пробелов.
Это то, что у меня есть, но это не работает должным образом. Это совпадает по линиям. Он должен соответствовать одному на строку.
([a-zA-Z\s]+)(\d+)?(\w)?
Вот ссылка на regex101, с которой можно играть: https://regex101.com/r/tSGIEm/2