#regex
Вопрос:
Я хотел бы захватить текст между фиксированным числом 9 пробелов из текста, который выглядит следующим образом: Демо
(LD4377) Masinuta clasica din lemn tractor - albastru 1 buc 3 15.00 45.00 8.55 - Little Dutch
Что я хочу извлечь: (LD4377) Masinuta clasica din lemn tractor - albastru - Little Dutch
Что я использую: s{9}((?:(?:[a-z0-9A-Z-/()]) [ ]{1}) )s{9}
Есть ли более эффективный способ получить нужный текст? Любая помощь будет очень признательна!
Ответ №1:
Вы можете развернуть цикл, сначала повторив только класс символов, а затем, при необходимости, повторить группу без захвата с начальным пробелом.
Вы можете [ ]{1}
заменить простым пробелом
s{9}([a-z0-9A-Z/()-] (?: [a-z0-9A-Z-/()-] )*)s{9}