Ein Beispieltext ist
"abc", "abc", "abc", "abc", "abc", "abc", "abc", "abc", "abc", "abc", "abc", "abc", "abc", "abc", "abc", "abc", "abc", "abc", "abc", "abc", "abc", "abc", "
abc
wo jede Kette von beliebiger Länge sein könnte (.*
) mit Ausnahme des 4-char-string ", "
.Wie ersetzt man jedes x-te Vorkommen einer Zeichenkette in einem Text mit RegEx?
Für meinen Test Fall, in dem
die Suche Nadel ist die vier Zeichen ", "
und jeder 4. Vorkommen sollte
ich mit
(([^(", ")]*", "[^(", ")]*){3})", "
und
((.*", ".*){3})", "
kam ersetzt werden Diese beiden funktionieren nicht in Notepad ++, wenn sie die Regex-Suche verwenden. (Ich sehe nur, ich habe nicht versucht, sie im Browser Scratchpad. Aber ich vermute den Fehler sowieso in meinem Regex-Begriff.)
Für den Ersatz habe ich versucht $1", \n"
.
Was ist der richtige Regex und der richtige Ersatz?
Bonus Frage :)
Wie zu erreichen, dass die "
der Suche Nadel wird für die Zählung der nächsten 4 Vorkommen der Nadel verwendet werden?
Vielleicht eine andere Beschreibung:
addLineBreaksToLongString(a="text",b="-, -",k=3,d=3) {
// a the String, b signal string to break at, k number of letters of b to keep on old line, d only break at every d-th occurence of b
(ich eine Javascript-Funktion, um dies zu erreichen geschrieben haben, also keine Notwendigkeit, Zeit legte eine in der Veröffentlichung Ich möchte meine regex Schreiben verbessern, weil es viel schneller ist, zu.. Verwendung in Einzelfällen)
Was genau ist falsch in Notepad ++? Das einzige, was ich an atm denken kann, ist, dass notepad ++ möglicherweise nicht entkommene Zeichen als Ersatz mag. –
Warum versuchst du es nicht hier zum Beispiel: https://regex101.com/r/cU5lC2/1#javascript – John