Wprowadzenie
Istnieje kilka sposobów usuwania cudzysłowów z ciągu znaków w Pythonie. Może być konieczne usunięcie wszystkich cudzysłowów lub tylko tych otaczających ciąg. Może być również konieczne usunięcie pojedynczych lub podwójnych cudzysłowów.
W tym krótkim artykule przygotowaliśmy obszerną listę metod, których możesz użyć do usunięcia cudzysłowów z ciągu znaków w Pythonie. To całkowicie zależy od Ciebie, którego użyjesz. Należy pamiętać, że rozwiązania, które tutaj wymieniliśmy, nie są uporządkowane od najlepszych do najgorszych. Każde rozwiązanie jest dobre, o ile odpowiada Twoim potrzebom w konkretnym przypadku.
Jak usunąć wszystkie cytaty z ciągu znaków w Pythonie?
Przede wszystkim przyjrzyjmy się, jak usunąć wszystkie cudzysłowy z ciągu. Rozwiązania wymienione w tej sekcji można zmienić tak, aby działały zarówno z pojedynczymi, jak i podwójnymi cudzysłowami. Ale na potrzeby tego artykułu załóżmy, że mamy przykładowy ciąg zawierający trzy podwójne cudzysłowy:
example_str = '"This is a string" with quotes"'
W tej sekcji przyjrzymy się kilku sposobom usuwania wszystkich "
z example_str
.
str.zamień()
Pierwszym podejściem, które omówimy, jest użycie str.replace()
metoda na example_str
. Przyjmuje dwa argumenty – ciąg, który chcemy zastąpić i ciąg zastępczy. W takim przypadku zastąpimy podwójny cudzysłów ("
) z pustym ciągiem:
new_str = example_str.replace('"', '')
print(new_str)
Połączenia str.replace()
użyte w ten sposób usunie wszystkie podwójne cudzysłowy z example_str
.
Wyrażenia regularne
To podejście wykorzystuje wyrażenia regularne aby usunąć wszystkie cudzysłowy z ciągu. Zanim zaczniemy używać wyrażeń regularnych w Pythonie, najpierw musimy zaimportować re
moduł:
import re
Następnie możemy użyć re.sub()
metoda do zastąpić wszystkie wystąpienia cudzysłowu z pustym ciągiem:
new_str = re.sub('"', '', example_str)
print(new_str)
To da nam example_str
bez żadnych cudzysłowów.
str.join()
Połączenia str.join()
to kolejna metoda, której możemy użyć do usunięcia wszystkich cudzysłowów z ciągu znaków w Pythonie. To rozwiązanie ma nieco bardziej złożoną składnię niż inne rozwiązania, jeśli nie znasz jeszcze join()
metoda. Zasadniczo przejdziemy przez example_str
znak po znaku i dołącz każdy, który nie jest cudzysłowem do pustego ciągu. W ten sposób uzyskamy example_str
bez żadnych cudzysłowów:
new_str = ''.join(c for c in example_str if c not in '"')
print(new_str)
Jak usunąć cytaty otaczające ciąg?
Do tej pory omawialiśmy kilka metod usuwania cała kolekcja cudzysłowy z ciągu znaków w Pythonie. To tylko jeden sposób patrzenia na usuwanie cudzysłowów z łańcucha. Prawdopodobnie częstszym problemem jest sposób usunięcia tylko cudzysłowy otaczające ciąg. Połączenia str.strip()
Metoda ma właśnie to zrobić. Dlatego omówimy str.strip()
metody opisanej w tej sekcji.
Powiedzmy, że mamy dokładnie to samo example_str
tak jak w poprzedniej sekcji i chcemy usunąć tylko pierwszy i ostatni cudzysłów:
example_str = '"This is a string" with quotes"'
Korzystanie z str.strip()
z podwójnym cudzysłowem jako argumentem usunie wiodące i końcowe cudzysłowy z example_str
:
Zapoznaj się z naszym praktycznym, praktycznym przewodnikiem dotyczącym nauki Git, zawierającym najlepsze praktyki, standardy przyjęte w branży i dołączoną ściągawkę. Zatrzymaj polecenia Google Git, a właściwie uczyć się to!
new_str = example_str.strip('"')
print(new_str)
Uwaga: Bez względu na to, ile wiodących i/lub wiodących cudzysłowów znajduje się w ciągu, str.strip()
usunie je wszystkie.
Poza tym, co zwykle str.strip()
metody, istnieją również dwie jej pochodne – str.lstrip()
i str.rstrip()
. Pierwszy usuwa wszystkie wiodące cytaty, a drugi usuwa wszystkie końcowe cytaty:
new_str = example_str.lstrip('"')
print(new_str)
new_str = example_str.rstrip('"')
print(new_str)
Wnioski
W tym krótkim artykule przyjrzeliśmy się dokładnie, jak usunąć cudzysłowy z łańcucha w Pythonie. Przede wszystkim wyjaśniliśmy, jak usunąć wszystkie cudzysłowy z ciągu za pomocą kilku różnych metod – str.replace()
, str.join()
, re.sub()
. Następnie przyjrzeliśmy się str.strip()
metoda, a także jej pochodne str.lstrip()
i str.rstrip()
.