Ich laufe Toolz.dev und verbringe den größten Teil meiner Woche in WordPress Plugin Code, Laravel APIs, und React Frontends Finden und ersetzen ist die einzelne Bearbeitung, die ich mehr als jede andere ausführe, und doch möchte ich neun von zehn Mal nicht die leistungsfähige Version davon Ich möchte keinen regulären Ausdruck nehmen Ich möchte einen Text nehmen, sagen Sie jedes Vorkommen eines Clients's alten Produktnamens, und tauschen Sie ihn gegen den neuen, genau, ohne ein Streufigur in meinem Suchbegriff, das etwas entspricht, das ich nie berühren wollte Das ist es, was das ist Werkzeug finden und ersetzen Tut, und in diesem Leitfaden geht es darum, warum die wörtliche, langweilige Version von finden und ersetzen diejenige ist, die Sie die meiste Zeit wünschen.
tl; dr: Dieses Tool findet und ersetzt buchstäblich über einen Block eingefügten Textes. Der Suchbegriff stimmt genau mit der eingegebenen überein, sodass ein Punkt mit einem vollständigen Stopp übereinstimmt und ein Dollarzeichen mit einem Dollarzeichen übereinstimmt, ohne dass es zu einem Escapezeichen und ohne versehentliches Überpassen kommt. Sie können mehrere Find-and-Replace-Regeln hinzufügen und diese in einem Durchgang anwenden, Übereinstimmungen auf ganze Wörter beschränken und die Empfindlichkeit des Falles ein- oder ausschalten. Es wird berichtet, wie viele Ersetzungen jede Regel vorgenommen hat. Alles läuft in Ihrem Browser, also wird nichts, was Sie einfügen, hochgeladen. Wenn Sie wirklich Wildcards und Erfassungsgruppen benötigen, ist stattdessen ein Regex-Replacer das richtige Werkzeug.
Was ist buchstäblich finden und ersetzen, und warum tut " wörtlich" Materie?
Finden und ersetzen ist die Operation, jedes Vorkommen einer Zeichenfolge zu lokalisieren und gegen eine andere zu tauschen Jeder Editor hat es. Was variiert, ist, wie das Tool Ihren Suchbegriff interpretiert, und diese einzelne Designauswahl entscheidet, ob das Tool Ihnen hilft oder Ihren Text stillschweigend ruiniert.
Es gibt zwei Schulen Ein Wiederholer für reguläre Ausdrücke behandelt Ihren Suchbegriff als Muster, wobei bestimmte Zeichen Befehle sind: ein Punkt bedeutet & quot; jedes Zeichen, & quot; ein Sternchen bedeutet & quot; wiederholen, & quot; ein Dollarzeichen bedeutet & quot; Zeilenende, & quot; und Klammern, Klammern und Backslashes haben alle eine besondere Bedeutung Ein wörtlicher Wiederholer behandelt Ihren Suchbegriff als sich selbst, Zeichen für Zeichen, ohne dass irgendetwas eine besondere Bedeutung hat.
Meistens ist wörtlich das, was man will, und hier ist der konkrete Grund Angenommen, man möchte die Versionszeichenfolge ersetzen 1.0.0 trotz 2.0.0 In einem Textblock In einem Regex-Tool sind diese Punkte Platzhalter, sodass Ihre Suche auch übereinstimmt 1x0y0, 1a0b0, und andere Zeichenfolgen, die du nie beabsichtigt hast Du müsstest den Punkten entkommen als 1\.0\.0 Um es sicher zu machen, und wenn Sie vergessen, macht das Werkzeug etwas subtil falsch und warnt Sie nicht In einem wörtlichen Werkzeug, 1.0.0 Mittel 1.0.0„Die Punkte sind Punkte, und es gibt nichts zu entkommen und nichts zu falsch machen. Das Gleiche gilt für einen Preis wie $9.99‘einen Dateipfad mit Backslashes, oder einen Code-Schnipsel mit Klammern drinnen Das wörtliche Tool bewältigt alle, ohne dass man über die Mustersyntax nachdenkt, denn es gibt keine Mustersyntax.
Wann sollte ich stattdessen einen Regex-Replacer verwenden?
Literal ist die richtige Vorgabe, aber es ist nicht die richtige Antwort auf alles, und ich würde Ihnen lieber sagen, wo es aufhört, als so zu tun, als ob es nicht so wäre Greifen Sie nach einem regex tool ersetzen Wenn das Ding, das Sie abgleichen, eine Form und keine feste Zeichenfolge ist Wenn Sie jedes vierstellige Jahr, jede E-Mail-Adresse oder jede Zeile, die mit einem Hash beginnt, abgleichen oder übereinstimmenden Text neu formatieren müssen, indem Sie Teile mit Erfassungsgruppen herausziehen, ist das Musterarbeit und ein wörtliches Werkzeug kann es nicht tun Die Regex-Tester Ist der Ort, an dem Sie dieses Muster erstellen und debuggen können, bevor Sie es ausführen.
Die Trennlinie ist einfach, wenn Sie genau das eingeben können, was Sie suchen, verwenden Sie wörtliches Finden und Ersetzen und sparen Sie sich das Entkommen. Wenn Sie eine Kategorie von Dingen suchen, die eine gemeinsame Form, aber keine genauen Zeichen haben, verwenden Sie einen Regex. Die meisten alltäglichen Textreinigungen sind die erste Art, weshalb das wörtliche Tool den Großteil der realen Aufgaben abdeckt und das Regex-Tool den Rest abdeckt.
| Situation | einsetzen | wieso |
|---|---|---|
| Ein festes Wort oder eine feste Phrase umbenennen | Wörtlich finden und ersetzen | Der Begriff ist exakt; kein Muster erforderlich |
Ein Suchbegriff, der Punkte, Schrägstriche oder enthält $ |
Wörtlich finden und ersetzen | Kein Entkommen, keine versehentlichen Wildcard-Matches |
| Fixieren Sie mehrere verschiedene Begriffe in einem Rutsch | Wörtlich finden und ersetzen, mehrere Regeln | Jede Regel ist genau und wird der Reihe nach angewendet |
| Passen Sie jedes Jahr, jede E-Mail-Adresse oder Codeform an | Regex ersetzen | Nur ein Muster kann eine Kategorie beschreiben |
| Den übereinstimmenden Text neu anordnen oder neu formatieren | Regex ersetzen | Fanggruppen ziehen Teile heraus und ordnen sie neu an |
| Übereinstimmung bei Zeilenstarts oder Wortgrenzen nach Regel | Regex ersetzen | Anker und Grenzen sind Mustermerkmale |
Wie funktionieren mehrere Regeln?
Die Funktion, auf die ich mich am meisten stütze, ist die Anwendung mehrerer Regeln auf einmal Echte Bereinigung ist selten ein Tausch Wenn ich einen Client übernehme' s kopiere, muss ich vielleicht einen Markennamen ändern, zwei konsistente Rechtschreibfehler beheben und ein Stück Boilerplate entfernen, alles im selben Textblock Das zu tun, wenn vier separate Durchgänge ausgeführt werden, ist mühsam und fehleranfällig. Mit dem Tool können Sie für jedes Find-and-Replace-Paar eine Zeile hinzufügen, und es wendet sie der Reihe nach an, wobei jede Regel auf die Ausgabe des vorherigen wirkt.
Dass die Reihenfolge verstehenswert ist, denn es ist ein Merkmal, kein Unfall Sagen Sie Regel eins ersetzt foo trotz barund Regel zwei ersetzt bar trotz baz. Weil Regel zwei auf dem Ergebnis von Regel eins läuft, Text, der als begann foo endet als baz. Meistens sind Ihre Regeln unabhängig und die Reihenfolge spielt keine Rolle, aber wenn sie interagieren, ist das Verhalten vorhersehbar: von oben nach unten, jeweils auf dem vorherigen Ergebnis. Das Tool zeigt Ihnen auch eine Zählung für jede Regel an, sodass Sie bestätigen können, dass Regel drei mit etwas übereinstimmt und nicht wegen eines Tippfehlers im Suchbegriff da sitzt und nichts tut.
Was bewirken Vollwort - und Falloptionen?
Zwei Optionen behandeln die Fälle, in denen ein einfacher Tausch zu stumpf ist.
Die Fallsensibilität entscheidet darüber, ob Cat, CAT, und cat Sind das gleiche Wort oder drei verschiedene Es ist standardmäßig aus, denn die meisten Bereinigungen wollen einen Begriff fangen, unabhängig davon, wie er großgeschrieben wurde Schalten Sie ihn ein, wenn die Groß - und Kleinschreibung der springende Punkt ist: wenn Sie eine Schreibweise eines Namens ändern möchten, ohne einen anderen zu berühren, oder wenn Sie mit Code arbeiten, wo value und Value unterschiedliche Kennungen sind.
Ganzwort-Matching entscheidet, ob Ihr Suchbegriff für sich stehen muss, anstatt in einem längeren Wort zu sitzen Das ist die Option, die Sie vor dem klassischen Find-and-Replace-Desaster bewahrt Wenn Sie ersetzen cat trotz dog Ohne Ganzwortabgleich dreht man sich auch category in dogegory und scatter in sdogter. Mit Ganzwort-Matching, nur das eigenständige Wort cat Ersetzt wird und die längeren Wörter in Ruhe gelassen werden Das Tool erkennt Wortgrenzen mit Unicode-Buchstaben und - Zahlen statt mit der ASCII-only-Definition, also ein akzentuiertes Wort wie café Wird als ein einziges Wort behandelt und seine Grenzen richtig gefunden, was eine naive Umsetzung mit dem Klassiker \b Grenze falsch laufen würde.
Hier gibt es einen umfassenderen Punkt darüber, wie Texttools Unicode respektieren müssen, worauf ich in der Handbuch für Textwerkzeuge: Die Behandlung von Text als Bytes und nicht als vom Benutzer wahrgenommene Zeichen ist der Grund für eine überraschende Anzahl von Werkzeugfehlern.
Wie ich es in der realen Arbeit verwende
Immer wieder kommen ein paar Muster, wenn ich Text aus einem PDF oder einer E-Mail einfüge, kommt dieser oft mit einem uneinheitlich geschriebenen Begriff an, und eine wörtliche Regel fixiert jede InstanzWenn ich einen Client & #39; s-Inhalt migriere, richte ich einen Stapel von Regeln für den Markennamen, die alte Domain und ein paar wiederkehrende Phrasen ein und führe sie alle auf einmal aus. Wenn ich Daten bereinige, bevor ich sie importiere, verwende ich Regeln, um ein wiederholtes Präfix oder ein Streunermarkierungszeichen zu entfernen und es durch nichts zu ersetzen, was nur eine Regel mit einem leeren Ersatz ist.
Es paart sich auf natürliche Weise mit den anderen Textwerkzeugen Ich habe oft eingefügten Text mit abgeflacht Zeilenumbrüche entfernen Zuerst, dann laufen finden und ersetzen auf dem Ergebnis Wenn es bei der Arbeit wirklich darum geht, die Form von Wörtern zu ändern, anstatt sie zu tauschen, wird die Fallwandler Passt besser, und wenn ich eine Liste dedupliziere, greife ich nach der Duplicate Line Remover Stattdessen. zu wissen, welches Werkzeug für welchen Auftrag ist, ist halb so schnell, und es gibt einen größeren Überblick darüber Entwicklerproduktivitätstools Führung.
Das letzte, und der Grund, warum ich diese gebaut habe, um sie im Browser auszuführen, ist die Privatsphäre Der Text, den Sie in ein Find-and-Replace-Tool einfügen, ist oft ein Entwurf, eine unveröffentlichte Kopie von Client' s, ein Transkript oder Daten, die Sie nicht geschäftlich auf einen zufälligen Server hochladen Alles, was dieses Tool tut, geschieht in JavaScript auf Ihrem eigenen Computer Nichts wird übertragen, protokolliert oder gespeichert, und Sie können es bestätigen, indem Sie die Verbindung zum Netzwerk trennen und zusehen, wie das Tool weiter funktioniert.
Ein funktionierendes Beispiel: ein Produkt seitenübergreifend umbenennen
Lassen Sie mich die Idee mit mehreren Regeln konkret machen, denn es ist der Teil, den die Leute zu wenig nutzen Sagen Sie, ein Client, der von & quot; QuickBooks Lite" zu & quot; ledgerly, " verschoben wurde oldsite.com auf ledgerly.app, und ihre alte Kopie behielt die Schreibweise & quot; e-mail" mit einem Bindestrich bei, während der neue Styleguide " email." drei unabhängige Änderungen wünscht, und ich würde sie als drei Regeln in einem Durchgang einrichten, anstatt als drei Fahrten durch das Tool.
Regel, die man findet QuickBooks Lite und ersetzt es durch Ledgerly. Regel zwei findet oldsite.com und ersetzt es durch ledgerly.app; Beachten Sie, dass die Punkte in beiden Bereichen hier wörtlich sind, sodass ich nichts entkommen muss, wohingegen ein Regex-Tool dies behandeln würde oldsite.com Als passend oldsiteXcom Sowie. Regel drei findet e-mail und ersetzt es durch email. Ich füge die Seite ein, führe alle drei aus, und die Zählung neben jeder Regel sagt mir, dass der Markenname neunmal geändert wurde, die Domain viermal geändert wurde und der Bindestrichfix zweimal getroffen wurde. Wenn Regel drei Null anzeigte, wüsste ich, dass die Kopie nicht die mit Bindestrich versehene Schreibweise enthielt und ich die Regel fallen lassen könnte.
Die Zählungen sind der stille Held dieses Workflows Ohne sie vertraut man darauf, dass jede Regel ihre Arbeit getan hat; mit ihnen bekommt man sofort die Rückmeldung, dass ein Suchbegriff richtig oder falsch war Eine Null, bei der man Übereinstimmungen erwartete, ist fast immer ein Tippfehler im Fundfeld oder eine Kapitalisierungsinkongruenz, die man beheben kann, indem man die Fallsensitivität umschaltet.
Wie funktioniert das Matching?
Es lohnt sich, ein wenig darüber zu wissen, was unter der Haube passiert, denn es erklärt ein Verhalten, das Sie sonst vielleicht überraschend finden würden. Das Tool scannt den Text von links nach rechts. An jeder Position prüft es, ob Ihr Suchbegriff ab dort übereinstimmt. Wenn dies der Fall ist und jede Vollwortbedingung erfüllt ist, schreibt es den Ersatz und springt am übereinstimmenden Text vorbei. Wenn dies nicht der Fall ist, kopiert es ein Zeichen quer und geht um eins weiter. Deshalb ist der Ersatz nicht innerhalb einer einzigen Regel rekursiv: Wenn es den Ersatz schreibt, scannt es danach weiter, nicht darin, also ersetzt es aa trotz a In der Zeichenkette aaa Gibt dir aa Anstatt ganz zusammenzubrechen a. Wenn Sie den Zusammenbruch wollen, führen Sie die Regel zweimal aus, was genau eine zweite Regel mit demselben Fund und Ersatz tut.
Das fallunsensitive Matching erfolgt Zeichen für Zeichen und nicht dadurch, dass zuerst die gesamte Zeichenfolge klein geschrieben wird. Das klingt wie ein Implementierungsdetail, aber es ist wichtig für die Korrektheit: Einige Zeichen ändern ihre Länge, wenn sie tiefer gelegt sind, und der Vergleich ganzer Zeichenfolgen mit niedrigerer Gehäusezahl würde die Positionen aus der Ausrichtung bringen und die Ausgabe beschädigen. Der Vergleich eines Zeichens nach dem anderen hält jeden Index ehrlich. Vollwortgrenzen werden unmittelbar vor und nach einem Match mit den Zeichen verglichen, wobei jeder Unicode-Buchstabe oder jede Unicode-Zahl als Teil eines Wortes behandelt wird, was akzentuierte und nicht-lateinische Skripte so verhalten lässt, wie Sie es erwarten würden.
Nichts davon muss man sich im täglichen Gebrauch überlegen Aber es ist der Unterschied zwischen einem Tool, das leise das Falsche an einem Edge Case macht und einem, dem man mit einem Client vertrauen kann' s kopieren, und es ist der Grund, warum ich lieber einen speziell angefertigten wörtlichen Replacer verwenden würde, als Text in ein Regexfeld einzufügen und hoffe, dass mein Suchbegriff kein spezielles Zeichen enthielt.
Häufig gestellte Fragen
Wie finde und ersetze ich Text, ohne Regex zu verwenden?
Fügen Sie Ihren Text in das Tool ein, geben Sie die genaue Phrase ein, die Sie finden möchten, und die genaue Phrase, mit der Sie ihn ersetzen möchten, und führen Sie sie aus. Die Suche ist wörtlich, sodass jedes Zeichen, das Sie eingeben, als es sich selbst abgeglichen wird und nichts entkommen muss. Jedes Ereignis wird ausgetauscht und Sie erhalten eine Zählung, wie viele Änderungen vorgenommen wurden, alle in Ihrem Browser, ohne dass etwas hochgeladen wurde.
Kann ich mehrere verschiedene Wörter gleichzeitig ersetzen?
Ja. Fügen Sie für jedes Find-and-Replace-Paar eine Zeile hinzu und das Tool wendet sie der Reihe nach an, wobei jede auf das Ergebnis der davor liegenden Regel einwirkt. So benennen Sie eine Marke um, reparieren zwei Rechtschreibfehler und entfernen ein Stück Heizplatte in einem einzigen Durchgang, und jede Regel zeigt ihre eigene Ersatzanzahl an, sodass Sie sehen können, dass sie übereinstimmt.
Was ist der Unterschied zwischen diesem und einem regex-Ersatzwerkzeug?
Dieses Tool passt wörtlich zu Ihrem Suchbegriff, sodass ein Punkt nur mit einem Punkt und einem Dollarzeichen übereinstimmt, nur mit einem Dollarzeichen, ohne dass eine Mustersyntax erlernt werden muss und ohne versehentliche Überanpassung. Ein Regex-Ersatztool behandelt den Suchbegriff als Muster mit Platzhalterkarten, Ankern und Erfassungsgruppen, was Sie benötigen, um eine Kategorie von Dingen wie ein beliebiges Jahr oder eine beliebige E-Mail-Adresse abzugleichen. Verwenden Sie wörtlich, wenn Sie genau das gewünschte Gerät eingeben können; Verwenden Sie Regex, wenn Sie einer Form entsprechen.
Wie stoppt der Ganzwortabgleich unerwünschte Ersetzungen?
Beim Ganzwort-Matching wird der Suchbegriff erst dann ersetzt, wenn er für sich steht und nicht innerhalb eines längeren Wortes Ersetzt cat Dann ändert sich cat Aber geht category, scatter, und located Unberührt Das Tool verwendet Unicode-bewusste Grenzen, sodass akzentuierte und nicht-englische Wörter korrekt gehandhabt werden, anstatt an der falschen Stelle geteilt zu werden.
Wird meine Zeilenumbrüche oder Abstände gefunden und ersetzt?
Nein. Es werden nur die gesuchten Zeichen geändert Zeilenumbrüche, Einrückungen, Abstände, Satzzeichen um Ihre Streichhölzer werden genau so belassen, wie sie waren, ist der Ersatz länger oder kürzer als das Original, verschiebt sich der umgebende Text natürlich, aber nichts anderes wird neu formatiert oder neu geblasen.
Gibt es eine Grenze, wie viel Text ich verarbeiten kann?
Es gibt keine feste Grenze über Ihren Browser hinaus' s Speicher Da die Arbeit auf Ihrem Gerät und nicht auf einem Server stattfindet, verarbeiten Blöcke von Hunderttausenden Zeichen fast augenblicklich und es gibt keine Obergrenze für die Upload-Größe Für etwas, das die Größe eines ganzen Buches hat, bemerken Sie möglicherweise eine kurze Pause, aber gewöhnliche Dokumente sind praktisch augenblicklich.
Wird mein Text irgendwo hochgeladen oder gespeichert?
Nein. Der Text wird von JavaScript in Ihrem Browser verarbeitet und niemals übertragen, protokolliert oder gespeichert. Sie können dies überprüfen, indem Sie die Netzwerkkarte öffnen, während Sie eine Ersetzung ausführen, oder indem Sie die Verbindung zum Internet trennen, da das Tool nach dem Laden der Seite weiterhin offline funktioniert. Das ist der Grund, ein clientseitiges Tool für Entwürfe, Clientkopien und alles Private zu verwenden.



