Ich versuche, die folgenden mit einem regulären Ausdruck zu tun:Python regulärer Ausdruck alles, aber bestimmte Worte zu ersetzen
import re
x = re.compile('[^(going)|^(you)]') # words to replace
s = 'I am going home now, thank you.' # string to modify
print re.sub(x, '_', s)
Das Ergebnis I erhalten:
'_____going__o___no______n__you_'
Das Ergebnis mag ich ist:
'_____going_________________you_'
Seit der ^
kann nur in Klammern verwendet werden []
, dieses Ergebnis macht Sinn, aber ich bin mir nicht sicher, wie ich es sonst machen könnte.
Ich versuchte sogar '([^g][^o][^i][^n][^g])|([^y][^o][^u])'
, aber es ergibt '_g_h___y_'
.
Nur zu FYI: Der Grund, warum Ihr '[^ (going) |^(you)]' scheitert, ist, dass die '[..]' -Syntax zu * nur einem Zeichen führt *. Das "^" am Anfang ist etwas Besonderes und bedeutet in der Tat "nicht", aber alles danach wird als eine benutzerdefinierte Menge von Zeichen betrachtet: '()^ginouy |'. – usr2564301