Обнаружение блоков srt, содержащих ровно одно тире (-), с помощью регулярного выраженияPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Обнаружение блоков srt, содержащих ровно одно тире (-), с помощью регулярного выражения

Сообщение Anonymous »

Я работаю с файлами субтитров .srt в PHP, и мне нужно регулярное выражение, которое находит блоки, содержащие ровно одно тире (это обычные дефисы (-), а не знаки минус), и начинается с начала строки.
Условия:
Если в блоке 0 тире, оно НЕ должно совпадать.
Если в блоке 2 или более тире, оно НЕ должно совпадать. совпадение.
Совпадать должны только блоки, содержащие ровно одно тире в любом месте блока.
Пример ввода:

Код: Выделить всё

5
00:00:32,393 --> 00:00:34,639
And a profile shot in this direction.

13
00:01:04,246 --> 00:01:07,312
- Would you like...
- That would be...

215
00:01:04,246 --> 00:01:07,312
Should not match-in the middle

621
00:42:26,920 --> 00:42:30,150
- Test X2, take one.

Ожидаемое поведение:
Блок № 5 → нет совпадения (0 тире)
Блок № 13 → нет совпадения (2 строки, каждая из которых начинается с тире)
Блок № 215 → нет совпадения (должен начинаться в начале строки)
Блок № 621 ✅ → должно совпадать (ровно 1) тире)

Подробнее здесь: https://stackoverflow.com/questions/798 ... sing-regex
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»