x 줄마다 오름차순 번호 및 .srt 파일의 일괄 수정 타임 스탬프


1

파일을 다음 형식으로 변환하는 데 어려움을 겪고 있습니다.

0:01:00.340 --> 0:01:01.380
***subtitle text***

0:01:01.380 --> 0:01:02.390
***subtitle text***

표준 .srt 형식으로 :

1
0:01:00,320 --> 0:01:01,360
***subtitle text***

2    
0:01:01,360 --> 0:01:02,320
***subtitle text***

미리 건배!

편집 : LotPing의 답변 전에 내 진행 상황에 대한 내용을 제거했습니다.


1
크로스 포스트하지 마십시오 : stackoverflow.com/q/49929871/372239
Toto

사과하고 처음으로 묻고 시간을 보냈습니다. 교차 게시 규칙에 있으면 나는 두 질문 중 하나 삭제하는 행복보다 더있을거야
unironicScriptKiddy

다른 게시물이 삭제되었습니다
unironicScriptKiddy

답변:


1

내가 좋아하는 편집기 Textpad 가이 작업을 수행 할 수 있습니다. 그렇지 않으면 vbscript 또는 Powershell이 ​​필요합니다.

여기에 이미지 설명을 입력하십시오

편집 RegEx는 점 / 쉼표 주위의 영역을 잡는 3 개의 그룹으로 더욱 복잡해졌습니다.

검색 : ^(\d{1,2}:\d{2}:\d{2})\.(\d{3}[-> ]+\d{1,2}:\d{2}:\d{2})\.(\d{3})
교체 :\i\n$1,$2,$3

RegEx의 기능은 다음과 같습니다.

  • 숫자를 나타내며 수량자인 h:mm:ss패턴을 검색합니다 . 1 ~ 2 개의 발생을 의미합니다. 두 번만입니다.\d{1,2}{2}
  • [-> ]+[ ]다음 수량 화기 내의 임의의 문자 클래스는 +적어도 하나의 클래스 문자를 의미하지만, 가능한 한 많은 클래스 문자를 의미한다.
  • ^ 라인 시작에 고정
  • (그룹)이
  • 뒤에 문자 점

이것은 다음으로 대체됩니다

  • \iTextPad를 특별한 증가
  • \n줄 바꿈
  • 그룹화 된 $1패턴 일명 시간
  • 리터럴 쉼표.

RegEx의 귀중한 소스는 Regular-Expressions.info
이며 RegEx 또는 RE를 사용하여 대화식으로 RegEx101.com 을 테스트하는 것입니다


위의 RE RegEx101.com 포함하지 않는 \i-FEATURE


흥미롭게도 전체 스톱을 쉼표로 변경 했습니까? 메모장 ++의 찾기 및 바꾸기에 복사하여 붙여 넣고 도움이되는지 확인합니다. 또한 ^, \ d, \ i 및 $ 1 연산자가 수행하는 작업을 신속하게 설명 하시겠습니까? 건배
unironicScriptKiddy

아니요.하지만 RE를 잡는 데 아무런 문제가 없습니다. 그러나 유감스럽게도 npp는 \i증분 교체를 지원하지 않습니다 . 사진을 업데이트하겠습니다.
LotPings

업데이트 해 주셔서 감사합니다. RegEx를 사용하면 조사하기가 훨씬 쉬워졌습니다. TextPad 8에서 식으로 복사하면 첫 번째 h : mm : ss 쉼표가 업데이트되지만 두 번째 타임 스탬프는 업데이트되지 않습니다 ( "->"다음에 표시됨)
unironicScriptKiddy


완전한! 답변으로 표시되었습니다. 대단히 감사합니다. 식의 "\ d {3} [->] +"부분을 설명 하시겠습니까? 나는 다른 모든 것들, 매우 흥미로운 것들을 이해합니다
unironicScriptKiddy

0

커맨드 라인 솔루션의 경우, 타사 exe 파일없이 XP 이후의 모든 Windows 컴퓨터에서 실행되는 순수 스크립트 (JScript / batch) 정규식 유틸리티 인 JREPL.BAT를 사용 합니다.

다음은 ^줄 연속을 사용 하여 스크롤을 피하지만 한 줄에 모두 넣을 수 있습니다.

jrepl "^(\d+:\d\d:\d\d)\.(\d{3} --> \d+:\d\d:\d\d)\.(\d{3})"^
      "$txt=++n+'\r\n'+$1+','+$2+','+$3" /jq /jbeg "var n=0" /f test.txt /o -

배치 스크립트 내에 명령을 넣을 경우 CALL JREPL을 사용하십시오.


이것은 어떻게 증분을 삽입합니까?
Toto

@Toto-아니었다-나는 그 요구를 완전히 놓쳤다. 증가하는 숫자를 입력하도록 답변을 업데이트했습니다.
dbenham
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.