Gå till huvudinnehållet
SubtitleMatrix

Regex-ersätt i undertexter

Text och formateringErsätt med reguljärt uttryck
Eller klistra in undertexttext

Inställningar

Ett reguljärt uttryck som matchas mot texten i varje textblock. Varje träff ersätts. De två sidorna i det här avsnittet delar fältet: den ena öppnar det tomt för ett mönster du redan har, den andra börjar med ett mönster du kan redigera åt båda hållen.

Vad varje träff blir. Lämna tomt för att ta bort varje träff. Till skillnad från sidan för bokstavlig sök och ersätt är ett dollartecken speciellt här: $1 står för den första gruppen inom parentes i träffen, $& för hela träffen och $$ för ett bokstavligt dollartecken.

Bokstäverna som mönstret kompileras med. g och u är på som standard: u gör att mönstret läser texten ett tecken i taget i stället för en kodenhet i taget, vilket är det som gör att \p{L} och liknande betyder det de säger. Lägg till i för att bortse från skiftläge, m för radankare, s för att låta en punkt matcha en radbrytning. Töm fältet för att kompilera helt utan flaggor. Varje annan bokstav avvisas i stället för att ignoreras, eftersom ett mönster som körs med flaggor du inte bad om är ett mönster som tyst betyder något annat.

Vilken bildfrekvens tiderna räknas i. På formatsidorna är det här vad MicroDVD behöver, eftersom formatet lagrar tider som bildnummer. På bildfrekvenssidorna är det den frekvens som filens tider byggdes för – den version som undertexterna gjordes för – och sidans andra fält tar frekvensen för den video du ska använda dem med. 23,976, 24, 25, 29,97, 30, 50, 59,94 och 60 är de vanligaste. Blir det fel förskjuts hela tidslinjen, och på bildfrekvenssidorna förskjuts den med ett förhållande i stället för med ett fast belopp.

Fyll i Mönster för att köra.

Ersätt text i undertexten med ett reguljärt uttryck. Här är sökningen ett mönster i stället för en bokstavlig fras, så du kan matcha varianter, grupper och valfria delar i en enda körning.

Mönstret kompileras med flaggorna g och u: alla träffar ersätts, och tecken hanteras som Unicode-tecken. Du kan lägga till i, m och s för skiftlägesokänslighet, radanknytning respektive punkter som också matchar radbrytning. Okända flaggbokstäver avvisas i stället för att tolkas tyst, så ett stavfel i flaggorna blir ett tydligt besked i stället för ett resultat du inte bad om.

I ersättningen kan du använda $1, $2 och de andra gruppreferenserna samt $& för hela träffen. Ett mönster med en kapslad obegränsad upprepning, som kan få matcharen att explodera, avvisas innan körningen börjar. Ett tomt mönster gör ingenting och rapporteras som att inget fylldes i.

Texten är separerad från formateringen, och en träff som korsar en formaterad dels kant släpper markeringen och räknar den. Karaoke-markeringar släpps alltid när texten ändras. Tider, ordning och radbrytningar rörs inte, och alla tolv format kan användas.

Exempel

Punktuationen kvar med en grupp

Indata

1
00:00:01,000 --> 00:00:02,000
We stopped , and waited .

2
00:00:03,000 --> 00:00:04,000
Right !

Resultat

1
00:00:01,000 --> 00:00:02,000
We stopped, and waited.

2
00:00:03,000 --> 00:00:04,000
Right!

Mönstret fångar mellanslaget före skiljetecknet och skriver tillbaka det utan mellanslag. Både kommatecknet och punkten flyttas ihop med ordet före, medan resten av raden står kvar.

Ett mönster, båda stavningarna

Indata

The Colour of the sky.
colourless and calm.

Resultat

The color of the sky.
colorless and calm.

En enda körning byter colour mot color och colourless mot colorless, eftersom mönstret matchar stavningen oavsett vad som står efter. Hade sökningen varit litterär hade du behövt två körningar eller två olika sökord.

En träff som korsar en kursiv dels kant

Indata

1
00:00:01,000 --> 00:00:04,000
<i>Hello there</i>, welcome aboard

Resultat

1
00:00:01,000 --> 00:00:04,000
Hello there. Welcome aboard

Mönstret träffar från den kursiva texten och in i den efterföljande texten, så markeringens kant korsas. Kursiven släpps och räknas i förlustrapporten, och resultatet blir den rena meningen utan markup.

Vanliga frågor

Vilka flaggor används och kan jag lägga till fler?

Mönstret körs alltid med g och u: alla träffar ersätts och tecken hanteras som Unicode. Du kan dessutom slå på i för skiftlägesokänslighet, m för radanknytning och s för att punkten också ska matcha radbrytning. Okända bokstäver avvisas, så ett stavfel blir ett besked i stället för ett tyst annat resultat.

Hur refererar jag till grupper i ersättningen?

Använd $1, $2 och så vidare för fångade grupper, $& för hela träffen och $$ för ett bokstavligt dollartecken. Det är samma syntax som i JavaScripts replace. En grupp som inte deltog i träffen blir en tom sträng, så ett mönster med valfria delar kan behöva en efterföljande städning om du vill undvika dubbla mellanslag.

Varför avvisas mitt mönster?

Sidan avvisar mönster med en kapslad obegränsad upprepning, till exempel en grupp som upprepas inuti en annan upprepning utan övre gräns, eftersom sådana mönster kan få matcharen att arbeta exponentiellt och låsa fliken. Ett tomt mönster avvisas också. Beskedet kommer innan körningen börjar, så ingen fil hinner bearbetas halvvägs.

Vad händer med formatering som träffen korsar?

En träff som ligger helt utanför en markering flyttar den, och en träff inuti sträcker den. Om träffen korsar markeringens kant finns det ingen riktig plats kvar, så markeringen släpps och räknas i förlustrapporten. Karaoke-markeringar släpps alltid när texten ändras, eftersom stavelsernas tider inte längre motsvarar texten.

Kan mönstret matcha över en radbrytning?

Inte som standard. En hård radbrytning är en separat rad när filen läses, och sidan arbetar rad för rad. Flaggan s låter punkten matcha radbrytning i den text som redan är en rad, men den kan inte föra samman två rader. Vill du sätta ihop rader först ska du använda en reflow-sida före den här.

Fungerar reguljära uttryck i SRT-filer?

Ja, och i de elva andra formaten. Sidan kör mönstret på varje rad och skriver tillbaka texten i samma format, så SRT, WebVTT, ASS, SSA och de övriga fungerar. Tider, ordning och antal textblock påverkas inte av en ersättning som bara byter text.

Ersätts alla träffar i filen?

Ja, flaggan g är alltid på, så varje träff i varje rad ersätts. Det finns inget val för att bara byta den första träffen. Vill du begränsa bytet kan du göra mönstret mer specifikt, till exempel genom att ankra det till radens början eller kräva ett visst tecken före träffen.

Relaterade verktyg