Gewone modus zoekt naar de tekens die je typte
In gewone modus wordt het zoekvak geëscaped voordat het bij de reguliere-expressie-engine komt, dus 5.00 vindt 5.00 en niet 5x00, en (concept) vindt die haakjes in plaats van een lege capture group. De vervanging wordt ook geëscaped, en daarom voegt $1 in gewone modus een dollarteken en een één in. Dat is het verschil met de gemiddelde vervanger online, die of allebei de teksten onaangeraakt aan een reguliere expressie voert of alleen de zoektekst afhandelt en de vervanging niet.
Regexmodus geeft je de hele JavaScript-syntaxis en de vervangingstokens erbij: $1 tot $99 voor genummerde groepen, $<naam> voor een benoemde groep, $& voor de hele match en $$ voor een letterlijk dollarteken. Een kolom met Achternaam, Voornaam omdraaien is één regel: (\w+), (\w+) vervangen door $2 $1.
Wat "heel woord" werkelijk doet
Het wikkelt het patroon in \b, een grens tussen een woordteken en een niet-woordteken. Die definitie heeft een scherpe kant die de meeste tools negeren: een patroon dat met een leesteken begint of eindigt heeft aan die kant geen woordteken, dus daar een grens eisen matcht helemaal niets. Zoeken naar (x) met heel woord aan zou stilletjes nul resultaten geven. Hier wordt de grens alleen toegevoegd aan de kant waar echt een woordteken staat, zodat het vinkje doet wat het lijkt te doen, wat je ook zoekt.
\b is alleen gedefinieerd op [A-Za-z0-9_], en dat is de JavaScript-definitie en geen Unicode-definitie. Voor de engine hebben café en naïef dus middenin een woordgrens. Telt tekst met accenten, laat heel woord dan uit en schrijf in regexmodus de grens die je bedoelt.
Waarom een reguliere expressie op een achtergrondthread draait
Een patroon met geneste quantifiers, waarvan (a+)+$ de klassieker is, kan exponentieel lang doen over een tekst die bijna past: 30 tekens invoer is al miljarden paden door de backtrackende engine. Er is geen manier om JavaScript midden in een match te onderbreken, dus de enige uitweg is het ergens draaien waar het afgebroken kan worden. Regexmodus draait in een Web Worker met een budget van één seconde en de worker wordt afgebroken als er niets terugkomt, en daarom geeft een op hol geslagen patroon je een waarschuwing in plaats van een bevroren tabblad. Gewone modus kan helemaal niet backtracken, dus die draait ter plekke en blijft direct.
Veelvoorkomende problemen
- Er matchte niets, terwijl het woord er gewoon staat. Bijna altijd Hoofdlettergevoelig, of een vaste spatie waar je een gewone verwachtte. Plak de tekst in Witruimte verwijderen om de onzichtbare tekens bij naam te vinden.
- Het verving een deel van een langer woord. Zet Alleen hele woorden aan.
katvervangen in een document metkatalysatorerin is de standaardmanier om een middag te verpesten. - De vervanging voegde iets vreemds in. Een dollarteken start in regexmodus een vervangingstoken. Schrijf
$$voor een letterlijk teken, of ga naar gewone modus, waar het voor je geëscaped wordt. - De regeleindes zijn veranderd. Dat is niet zo. De tekst wordt ter plekke herschreven en tekens die niet aangeraakt zijn, CRLF inbegrepen, komen er precies zo uit als ze erin gingen.
Veelgestelde vragen
Wordt mijn tekst geüpload?
Nee. Alles draait in dit tabblad, en er gaat niets naar buiten. De tekst, de zoekterm en de vervanging komen ook nooit in de adresbalk of in de opslag van de browser, en dat is een bewuste keuze: alleen de vier vinkjes reizen mee in een gedeelde link, dus er een naar een collega plakken kan niet lekken wat je aan het bewerken was.
Hoe verwijder ik tekst in plaats van hem te vervangen?
Laat het vervangvak leeg. Gebruik eerst de weergave Matches, want een verwijdering is per definitie onzichtbaar in het resultaatvenster en de markering is de enige manier om te zien wat er weggaat.
Kan ik over meerdere regels matchen?
Ja, in regexmodus. Patronen draaien tegen de hele tekst in plaats van regel voor regel, dus \n matcht een regeleinde en [\s\S]*? loopt over regels heen zonder dotall-vlag. Gebruik voor een volledige set vlaggen, capture groups en een matchtabel de regextester.
Hoe groot mag een document zijn?
2 MB, en dat is ruwweg 400.000 woorden. Daarboven stopt de tool in plaats van vast te lopen, want het werk gebeurt op je eigen apparaat en niet op een server.