Ich möchte Leerzeichen durch Unterstriche in einer Zeichenfolge ersetzen, um nette URLs zu erstellen. So dass zum Beispiel:
"This should be connected" becomes "This_should_be_connected"
Ich benutze Python mit Django. Kann dies mit regulären Ausdrücken gelöst werden?
slugify
Gibt nicht die gewünschte Ausgabe.Antworten:
Sie brauchen keine regulären Ausdrücke. Python verfügt über eine integrierte Zeichenfolgenmethode, die genau das tut, was Sie benötigen:
quelle
Das Ersetzen von Leerzeichen ist in Ordnung, aber ich könnte vorschlagen, etwas weiter zu gehen, um andere URL-feindliche Zeichen wie Fragezeichen, Apostrophe, Ausrufezeichen usw. zu behandeln.
Beachten Sie auch, dass der allgemeine Konsens unter SEO-Experten darin besteht, dass Bindestriche den Unterstrichen in URLs vorgezogen werden.
quelle
Django verfügt über eine Slugify-Funktion sowie andere URL-freundliche Optimierungen. Es ist im Standardfilter-Modul versteckt.
Dies ist nicht genau die Ausgabe, nach der Sie gefragt haben, aber IMO ist es besser für die Verwendung in URLs.
quelle
Dies berücksichtigt andere leere Zeichen als Leerzeichen und ich denke, es ist schneller als die Verwendung von
re
Modulen:quelle
\x8f
)Verwenden des
re
Moduls:Sofern Sie nicht wie oben über mehrere Leerzeichen oder andere Leerzeichen
string.replace
verfügen, möchten Sie diese möglicherweise nur verwenden, wie andere vorgeschlagen haben.quelle
Verwenden Sie die Ersetzungsmethode des Strings:
"this should be connected".replace(" ", "_")
"this_should_be_disconnected".replace("_", " ")
quelle
Überraschenderweise wurde diese Bibliothek noch nicht erwähnt
Python-Paket mit dem Namen python-slugify, das ziemlich gute Arbeit beim Slugifizieren leistet:
Funktioniert so:
quelle
Ich verwende den folgenden Code für meine freundlichen URLs:
Es funktioniert auch gut mit Unicode-Zeichen.
quelle
Python verfügt über eine integrierte Methode für Zeichenfolgen namens replace, die wie folgt verwendet wird:
Sie würden also verwenden:
Ich hatte dieses Problem vor einiger Zeit und schrieb Code, um Zeichen in einer Zeichenfolge zu ersetzen. Ich muss daran denken, die Python-Dokumentation zu überprüfen, da sie Funktionen für alles eingebaut hat.
quelle
OP verwendet Python, jedoch in Javascript (etwas, auf das Sie achten müssen, da die Syntax ähnlich ist.
quelle
Wenn Sie diesen Wert einer Variablen zuweisen, funktioniert er
Standardmäßig hat mystring dies nicht
quelle
Sie können dies stattdessen versuchen:
quelle
Übereinstimmen und Ersetzen des Leerzeichens> Unterstrich aller Dateien im aktuellen Verzeichnis
quelle