Hopp til hovedinnhold
SubtitleMatrix

Erstatt med regulært uttrykk

Tekst og stilErstatt med regulært uttrykk
Eller lim inn underteksttekst

Innstillinger

Et regulært uttrykk som samsvares mot teksten i hver tekstblokk. Hvert treff erstattes. De to sidene i denne delen deler boksen: den ene åpner den tom for et mønster du allerede har, den andre starter den med et mønster du kan redigere begge veier.

Hva hvert treff blir. La den stå tom for å slette hvert treff. I motsetning til siden for bokstavelig søk og erstatt er et dollartegn spesielt her: $1 står for den første gruppen i parentes i treffet, $& for hele treffet og $$ for et bokstavelig dollartegn.

Bokstavene mønsteret kompileres med. g og u er på som standard: u gjør at mønsteret leser teksten tegn for tegn i stedet for kodeenhet for kodeenhet, som er det som gjør at \p{L} og lignende betyr det de sier. Legg til i for å ignorere store og små bokstaver, m for linjeankre, s for å la et punktum samsvare med et linjeskift. Tøm boksen for å kompilere helt uten flagg. Enhver annen bokstav avvises i stedet for å ignoreres, fordi et mønster som kjører under flagg du ikke ba om, er et mønster som stille betyr noe annet.

Hvilken bildefrekvens tidene telles i. På formatsidene er det dette MicroDVD trenger, fordi det lagrer tid som bildenummer. På sidene for bildefrekvens er det frekvensen filen ble tidsstyrt mot — versjonen undertekstene ble laget for — og sidens andre boks tar frekvensen til videoen du skal bruke dem med. 23,976, 24, 25, 29,97, 30, 50, 59,94 og 60 er de vanlige. Tar du feil, forskyves hele tidslinjen, og på bildefrekvenssidene forskyves den med et forhold i stedet for et fast beløp.

Fyll ut Mønster for å kjøre.

Denne siden skriver om teksten inne i undertekstblokker med et mønster du skriver. Et mønster er ikke en fast streng: `\d+` betyr en hvilken som helst rekke sifre, `(cat|dog)` betyr ett av ordene, og et punktum står for et hvilket som helst tegn. Hvert treff, i hver blokk, erstattes i én omgang, og siden rapporterer hvor mange steder som ble endret. Bare teksten flytter seg — hver start- og sluttid føres over nøyaktig som den var.

Erstatningsboksen er heller ikke en fast streng. Et dollartegn i den er spesielt: `$1` står for det første gruppen i parentes fanget opp, `$&` for hele treffet, og `$$` for et bokstavelig dollartegn. Det er dette som lar én regel rydde tusenvis av forskjellige linjer — fjerne det løse mellomrommet før et punktum mens tegnsettingen beholdes, fordi tegnsettingen er det gruppen fanget.

Mønstre kjører med `g` og `u` på. `g` betyr finn hvert treff i stedet for bare det første; `u` gjør at mønsteret leser teksten tegn for tegn i stedet for kodeenhet for kodeenhet, som er det som gjør at `\p{L}` betyr en bokstav. Legg til `i` for å se bort fra store og små bokstaver, `m` for å la ankere virke linje for linje, `s` for å la et punktum matche et linjeskift. Tøm flaggboksen for å kjøre uten noen av dem. Enhver annen bokstav avviser hele kjøringen i stedet for å bli ignorert, fordi et mønster som kjører med flagg du ikke ba om, er et mønster som stille betyr noe annet.

Innebygd stiling følges med når det finnes et ærlig sted for den å sitte: en tagg forskyves når endringen skjer utenfor den, og strekkes når endringen skjer inne i den. Når et treff krysser kanten av en tagg, droppes markeringen og telles i tapsrapporten, fordi alternativet er kursiv rundt feil ord. Ingenting lastes opp, hver fil skrives tilbake i sitt eget format, og en hel sesong kan gå gjennom køen samtidig.

Mønsterboksen er tom når du kommer hit. Det er den eneste forskjellen mellom denne siden og den som fjerner tidsstempler fra underteksttekst — den siden er samme verktøy med et ferdig skrevet mønster for `[00:01:23]`-stempler i boksen, og denne lar deg skrive ditt eget fra bunnen av. Å ha dem som to sider er med vilje: én side der en kjøring som ikke gjorde noe, er en skrivefeil, og én der det å skrive et mønster er hele oppgaven.

Eksempler

Å beholde tegnsettingen med en fangstgruppe

Inndata

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ønsteret er en rekke mellomrom etterfulgt av ett av . , ! ? — og parentesen gjør den tegnsettingen til den første gruppen, så `$1` setter den tilbake. Tre treff, tre endringer. Et bokstavelig søk kan ikke uttrykke dette i det hele tatt: det kan bare gjøre én fast streng om til en annen fast streng.

Ett mønster, begge stavemåter

Inndata

The Colour of the sky.
colourless and calm.

Resultat

The color of the sky.
colorless and calm.

Med `i` i flaggboksen fanger `colour` også stavemåten med stor bokstav. Legg merke til hva flagget ikke gjør: den store bokstaven som startet linjen, er borte, fordi et mønster ikke har noen anelse om hva et ord gjør i en setning. Har stor bokstav betydning, er det en andre regel.

Et treff som krysser kanten av et kursivt område

Inndata

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

Treffet begynner inne i kursiven og slutter utenfor den, så halvparten av det markeringen dekket, er borte, og det finnes ikke noe riktig sted igjen for den. Den droppes og telles i stedet for å bli stående rundt feil bokstaver.

Ofte stilte spørsmål

Hvordan beholder jeg en del av det mønsteret traff?

Sett parenteser rundt den delen i mønsteret og vis til den som `$1` i erstatningen — `$2` for den andre gruppen, og så videre. Mønsteret `\s+([.,!?])` med erstatningen `$1` fjerner mellomrommet og beholder tegnsettingen, som er nøyaktig jobben en fast streng ikke klarer. `$&` står for hele treffet, og `$$` for et dollartegn du faktisk vil ha i teksten.

Hvilke flagg kjører mønsteret med?

`g` og `u` er på som standard. `g` finner hvert treff i stedet for å stoppe ved det første, og `u` gjør at mønsteret leser teksten tegn for tegn, som er det som gjør at `\p{L}`, `\p{N}` og lignende betyr det de sier. Legg til `i` for å se bort fra store og små bokstaver, `m` for å la ankere virke per linje, `s` for å la et punktum matche et linjeskift. Tømmer du boksen, kjøres det uten flagg i det hele tatt. Enhver annen bokstav — `x`, `y`, `d` — avviser kjøringen i stedet for å bli ignorert.

Er dette det samme som siden for søk og erstatt?

Nei, og forskjellen er hva du skriver i boksen. Den siden matcher tegn nøyaktig som skrevet, så det eneste som kan gå galt, er å finne ingenting. Denne siden kjører et program, som kan treffe tusenvis av steder i én omgang og skrive om alle sammen. Det er derfor mønsteret starter tomt her, derfor avvises ukjente flagg, og derfor er de to sidene atskilte: på den ene siden er en omskriving som ikke skjedde, en skrivefeil, på den andre kan det være et mønster som stille betydde noe annet.

Hva skjer når to treff overlapper?

Det lengst til venstre vinner, og skanningen fortsetter etter det, som hver regulære uttrykksmotor gjør. Så `aa` mot `aaaa` finner to treff og ikke tre, og etter at de er erstattet, er teksten `bb`. Forventet du tre, beskriver mønsteret noe motoren ikke kan gjøre, og det er bedre å vite det før filen kommer tilbake.

Beskytter siden meg mot et mønster som er tregt?

Den avviser én familie av dem før noe kjører: en repetisjon brukt på en gruppe som allerede gjentar seg uten grense, som `(a+)+` eller `(\d+)+`. Det er mønstrene som låser en nettleserfane, og tretti tegn med inndata er nok. Tre former fanges ikke og er verdt å unngå for hånd — to overlappende alternativer inne i en gjentatt gruppe, som `(a|a)+`; flere overlappende repetisjoner side om side, som `a*a*a*b`; og enorme antall, som `(a{100}){100}`. Ingenting sjekkes mot en klokke, fordi en tidsgrense ville gjort at den samme filen kom ut forskjellig på en rask og en treg maskin.

Hva skjer med kursiv og annen stiling når teksten skrives om?

En tagg utenfor endringen forskyves sammen med teksten, og en tagg som inneholder endringen, strekkes eller trekkes sammen for å matche. Når et treff krysser kanten av en tagg, finnes det ikke noe riktig sted igjen for markeringen, så den droppes, og tapsrapporten sier hvor mange som ble droppet. Karaoketiming droppes hver gang et treff berører den, fordi inndelingen per stavelse ikke lenger stemmer med ordene.

Kan jeg bruke denne på hvilket som helst undertekstformat?

Ja. Mønsteret brukes på teksten i hver blokk, og alle tolv formatene leser ut den teksten, så en SRT, en WebVTT-fil, en ASS-fil med stiler, et LRC-tekstark eller en ren transkripsjon virker på samme måte. Hver fil skrives tilbake i formatet den kom i, og bilderutene i en MicroDVD-fil bruker bilderutefrekvensen i panelet.

Relaterte verktøy