Angenommen, ich habe dieses Stück Text:zu ersetzen, aber das letzte Vorkommen der Zeichenkette in einem Text
Saturday and Sunday and Monday and Tuesday and Wednesday and Thursday and Friday are days of the week.
Ich möchte alle, aber die letzten and
mit einem Komma ersetzt werden:
Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday and Friday are days of the week.
Gibt es einen einfachen Weg, das in Regex zu tun? Soweit ich weiß, ersetzt die replace
Methode in Regex die Zeichenfolgen den ganzen Weg.
Nicht mit dem Oxford Komma, sehe ich. –
Streng genommen tun reguläre Ausdrücke nur Übereinstimmung, und Substitution ist ein Merkmal der Hosting-Sprache, normalerweise seine String-Verarbeitungsmöglichkeiten. – tripleee
Dies ist ein wenig unlesbar. Vielleicht könntest du dich damit amüsieren. ".join (reduzieren (Lambda x, y: x + [" und "+ y] wenn len (x) == 0 sonst x + [", "+ y], re.split (" und "," Samstag und Sonntag und Montag und Dienstag und Mittwoch und Donnerstag und Freitag sind Wochentage. ") [:: - 1], []) [:: - 1]) [1:] –