Я хочу с помощью Notepad++ выполнить поиск в файле субтитров "," и его следует заменить на "." между цифрами временных меток, но не в остальных текстовых строках.
Источник:
00:01:17,000 --> 00:01:20,000
vor allem aber an Ausläufen, Reitplätzen
und Weideflächen.
На данный момент я ищу: "," и для замены использую регулярное выражение "\1.\2". Но это также изменит все остальные запятые между текстовыми строками.
Результат:
00:01:17.000 --> 00:01:20.000
vor allem aber an Ausläufen. Reitplätzen
und Weideflächen.
Как мне расширить регулярное выражение, чтобы заменить запятые только между цифрами временных меток?
Чего я ожидаю:
00:01:17.000 --> 00:01:20.000
vor allem aber an Ausläufen, Reitplätzen
und Weideflächen.
Я бы поискал следующее:
^([0-9:]{8}),(\d{3}) --> ([0-9:]{8}),(\d{3})$
И замените это на это:
\1.\2 --> \3.\4
Регулярное выражение соответствует определению всего временного сегмента, сначала сопоставляя часть xx:yy:zz
с [0-9:]{8}
(восемь цифр и двоеточий) и помещая ее в первую группу, затем миллисекундные части с \d{3}
и помещая ее во вторую группу. То же самое происходит и с временем окончания, части которого помещаются в третью и четвертую группу.
Шаблон замены относится к этим группам и восстанавливает определение временного сегмента с помощью точек вместо запятых.
Вы можете использовать более конкретное регулярное выражение для Notepad++.
\b\d{2}:\d{2}:\d{2}\K,(?=\d{3}\b)
Шаблон соответствует:
\b
Граница слова для предотвращения частичного совпадения слов.\d{2}:\d{2}:\d{2}
Сопоставьте часы, минуты и секунды.\K,
Забудьте, что уже найдено, и затем укажите запятую.(?=\d{3}\b)
Позитивный просмотр вперед, утверждает 3 цифры, за которыми следует граница слова справа.В замене используйте точку .
Посмотрите демонстрацию регулярных выражений .
Или используйте две группы захвата и используйте эти группы в замене, разделенные точкой $1.$2
\b(\d{2}:\d{2}:\d{2}),(\d{3})\b
Посмотрите еще одну демонстрацию регулярных выражений .
Полностью соответствующий шаблон с 3 группами захвата, где \h+
соответствует 1 или нескольким горизонтальным пробельным символам:
\b(\d{2}:\d{2}:\d{2}),(\d{3}\h+-->\h+\d{2}:\d{2}:\d{2}),(\d{3})\b
Посмотрите еще одну демонстрацию регулярных выражений
В замену используйте $1.$2.$3