Ich versuche, bestimmten Text abzugleichen und ihn dann durch den Text und einige zusätzliche Zeichen zu ersetzen. Minimaler Beispieltext:
#10 Oranges. These are citrus fruits
Gewünschte Ausgabe:
#10 Oranges.
These are citrus fruits
Regex: (#\d{1,2}[^.]*\.)\s*
Ersetzen mit: $1\n
(Ich habe Match using regular expressions
überprüft)
Der Regex stimmt erfolgreich überein #10 Oranges.
. Die nummerierte Rückreferenz ersetzt jedoch nicht den Text durch die Erfassungsgruppe, sondern geht nur wörtlich ein (wörtliche Ausgabe ist $1\n
). Ich habe auch versucht, einen Backslash für die nummerierte Backreference zu verwenden, \1
und das Ergebnis ist das gleiche.
Fehlt mir etwas? Wie füge ich übereinstimmenden Text mit regulären Ausdrücken wieder in Google Docs ein?
quelle
Note: Capture groups only work with Google Sheets.
Siehe support.google.com/docs/answer/62754#regular_expressionsAntworten:
Kurze Antwort
Verwenden Sie anstelle der integrierten Such- und Ersetzungsfunktion Google Apps Script oder ein Add-On.
Erläuterung
Bei der Funktion "Suchen und Ersetzen" von Google Dokumente funktioniert der Teil "Ersetzen" nicht mit regulären Ausdrücken und auch nicht mit der Methode "replaceText ()" des Dokumentendienstes in Google Apps Script. Glücklicherweise funktioniert die JavaScript-Ersetzungsmethode.
Informationen zu den Grundlagen zum Erstellen eines einfachen Skripts finden Sie unter https://developers.google.com/apps-script/overview
Code
Dieser Code ist eine Anpassung des in der Referenz enthaltenen Codes
Verweise
quelle
Replace with regular expressions
)Etwas hackig, aber es erfordert kein zusätzliches Add-On-Skript und wird wahrscheinlich 99% Ihrer Anwendungsfälle abdecken. Sie können weiterhin Erfassungsgruppen mit
RegexReplace
und Verweise im Ersetzungstext durch$1
oder verwenden$2
. Teilen Sie einfach Ihren regulären Ausdruck in zwei Erfassungsgruppen auf und verketten Sie ihn mit einem zufälligen (selten verwendeten) Charakter wie~
. Dann können Sie den gesamten zurückgegebenen Wert daraus~
entnehmen und durch eine neue Zeile ersetzen :Weitere Informationen zur in Google Sheets verwendeten Regex-Syntax finden Sie in der re2-Spezifikation
quelle
Wie vom Benutzer in den Kommentaren angegeben
Hinweis: Erfassungsgruppen funktionieren nur mit Google Sheets.
quelle