Heim > Backend-Entwicklung > Python-Tutorial > So löschen Sie alles vor oder nach einem bestimmten Zeichen in Python

So löschen Sie alles vor oder nach einem bestimmten Zeichen in Python

WBOY
Freigeben: 2023-05-01 19:10:04
nach vorne
2294 Leute haben es durchsucht

my_str = 'fql!jiyik!com'

separator = '!'

result = my_str.split(separator, 1)[0]
print(result)  # ????️ 'fql'
Nach dem Login kopieren

Wir verwenden die Methode str.split(), um alles nach dem Zeichen zu entfernen (im Beispiel!).

str.split() Methode teilt eine Zeichenfolge mithilfe von Trennzeichen in eine Liste von Teilzeichenfolgen auf.

Diese Methode benötigt die folgenden 2 Parameter:

  • Trennzeichen teilt die Zeichenfolge jedes Mal in Teilzeichenfolgen auf, wenn ein Trennzeichen erscheint# 🎜🎜##🎜🎜 #

  • maxsplit Vollständige Maxsplit-Aufteilungen (optional)
  • Wenn im Zeichenfolgensymbol keine Aufteilung gefunden wird, wird eine Liste zurückgegeben, die nur 1 Element enthält.

Wir setzen den Parameter maxsplit auf 1, da wir die Zeichenfolge nur einmal teilen müssen.

Dieses Beispiel entfernt alles nach dem ersten Vorkommen des Zeichens in der Zeichenfolge.

my_str = 'fql!jiyik!com'


separator = '!'
result_1 = my_str.split(separator, 1)[0]
print(result_1)  # ????️ 'fql'

# ????️ ['fql', 'jiyik!com']
print(my_str.split(separator, 1))
Nach dem Login kopieren

Alles nach dem Zeichen entfernen, Trennzeichen beibehalten

Bitte beachten Sie, dass das Trennzeichen nicht in der Zeichenfolge enthalten ist. Wenn Sie es einschließen müssen, verwenden Sie den Additionsoperator (+).

my_str = 'fql!jiyik!com'

# ✅ 删除字符后的所有内容,保留分隔符
separator = '!'

result = my_str.split(separator, 1)[0] + separator
print(result)  # ????️ fql!
Nach dem Login kopieren

Der Additionsoperator + kann zum Verketten von Zeichenfolgen in Python verwendet werden.

Alles nach dem letzten Vorkommen des Zeichens löschen

Wenn wir alles nach dem letzten Vorkommen des Zeichens in der Zeichenfolge löschen müssen, verwenden Sie die Methode str.rsplit().

my_str = 'fql!jiyik!com'

separator = '!'

# ✅ 删除字符最后一次出现后的所有内容
result = my_str.rsplit(separator, 1)[0]
print(result)  # ????️ 'fql!jiyik'
Nach dem Login kopieren

rsplit() verhält sich wie split(), außer dass es von der rechten Seite aus teilt.

str.rsplit() Methode teilt die Zeichenfolge von rechts, wenn maxsplit auf 1 gesetzt ist, wird sie nur einmal geteilt.

Entfernen Sie alles nach dem letzten Vorkommen und behalten Sie das Trennzeichen bei.

Wenn wir die von Ihnen geteilten Zeichen einschließen müssen, verwenden Sie den Additionsoperator (+).

my_str = 'fql!jiyik!com'

separator = '!'

result = my_str.rsplit(separator, 1)[0] + separator
print(result)  # ????️ 'fql!jiyik!'
Nach dem Login kopieren

Verwenden Sie str.partition(), um alles nach einem Zeichen zu entfernen.

Wir können auch die Methode str.partition() verwenden, um alles nach einem bestimmten Zeichen in einer Zeichenfolge zu entfernen .

my_str = 'fql!jiyik!com'
separator = '!'

result = my_str.partition(separator)[0]
print(result)  # ????️ 'fql'

result = ''.join(my_str.partition(separator)[0:2])
print(result)  # ????️ 'fql!'
Nach dem Login kopieren

str.partition-Methode teilt die Zeichenfolge beim ersten Vorkommen des bereitgestellten Trennzeichens.

Diese Methode gibt ein Tupel zurück, das 3 Elemente enthält – den Teil vor dem Trennzeichen, den Teil nach dem Trennzeichen und den Teil nach dem Trennzeichen.

my_str = 'fql!jiyik!com'
separator = '!'

# ????️ ('fql', '!', 'jiyik!com')
print(my_str.partition(separator))
Nach dem Login kopieren

Wenn das Trennzeichen nicht in der Zeichenfolge gefunden wird, gibt diese Methode ein Tupel zurück, das die Zeichenfolge enthält, gefolgt von zwei leeren Zeichenfolgen.

Wenn wir Trennzeichen in das Ergebnis einfügen müssen, verwenden Sie die Methode str.join(), um das erste und das zweite Listenelement zu verbinden.

my_str = 'fql!jiyik!com'
separator = '!'

result = ''.join(my_str.partition(separator)[0:2])
print(result)  # ????️ 'fql!'
Nach dem Login kopieren

str.join-Methode verwendet ein iterierbares Objekt als Parameter und gibt eine Zeichenfolge zurück, die die Verkettung der Zeichenfolgen im iterierbaren Objekt darstellt.

Die Zeichenfolge, die diese Methode aufruft, wird als Trennzeichen zwischen Elementen verwendet.

Alles vor einem Zeichen in einer Zeichenfolge in Python löschen

So löschen Sie alles vor einem Zeichen in einer Zeichenfolge:

# 🎜🎜##🎜 🎜#Verwenden Sie die Methode str.find(), um den Index des Zeichens abzurufen.

  • Verwenden Sie String-Slicing und setzen Sie den Startindex auf den Index des Zeichens.

  • Die neue Zeichenfolge enthält nicht die vorherigen Zeichen.

  • my_str = 'apple, banana'
    
    result = my_str[my_str.find('b'):]
    print(result)  # ????️ banana
    Nach dem Login kopieren

    str.find-Methode gibt den Index des ersten Vorkommens des bereitgestellten Teilstrings in einem String zurück.

  • Wir verwenden String-Slicing, um einen Teil der ursprünglichen Zeichenfolge zu erhalten, der am Index des Zeichens beginnt und bis zum Ende der Zeichenfolge andauert.

Bitte beachten Sie, dass die Methode str.find() -1 zurückgibt, wenn der Teilstring nicht im String gefunden wird.

Umgang mit dem Szenario, in dem das Zeichen nicht existiert

Wir können mit der Situation umgehen, bei der die Methode find() in der if/else-Anweisung -1 zurückgibt.

my_str = 'apple, banana'

index = my_str.find('b')
print(index) # ????️ 7

if index != -1:
    result = my_str[index:]
else:
    result = my_str
    # ????️ alternatively raise an error

print(result) # ????️ 'banana'
Nach dem Login kopieren

Dies ist ein Beispiel für einen Fall, in dem das angegebene Zeichen nicht in der Zeichenfolge enthalten ist.

my_str = 'apple, banana'

index = my_str.find('z')
print(index)  # ????️ -1

if index != -1:
    result = my_str[index:]
else:
    result = my_str
    # ????️ alternatively raise an error

print(result)  # ????️ 'apple, banana'
Nach dem Login kopieren

Unsere else-Anweisung weist die Ergebnisvariable der gesamten Zeichenfolge zu, es kann jedoch eine Ausnahme ausgelöst werden.

my_str = 'apple, banana'

index = my_str.find('z')
print(index)  # ????️ -1

if index != -1:
    result = my_str[index:]
else:
    # ????️ this runs
    raise IndexError('provided character not in string')
Nach dem Login kopieren

Alles vor dem letzten Vorkommen des Zeichens löschen

Wenn wir alles vor dem letzten Vorkommen des Zeichens löschen müssen, verwenden Sie die Methode str.rfind().

my_str = 'apple,banana,bear'

result = my_str[my_str.rfind('b'):]

print(result) # ????️ 'bear'
Nach dem Login kopieren

str.rfind-Methode gibt den höchsten Index in der Zeichenfolge zurück, an dem die bereitgestellte Teilzeichenfolge gefunden wird.

Wenn die Zeichenfolge keine Teilzeichenfolge enthält, gibt diese Methode -1 zurück.

Wir können if/else-Anweisungen verwenden, um Situationen zu behandeln, in denen das Zeichen nicht in der Zeichenfolge vorhanden ist.

my_str = 'apple,banana,bear'

index = my_str.rfind('b')

if index != -1:
    result = my_str[index:]
else:
    result = my_str

print(result)  # ????️ 'bear'
Nach dem Login kopieren

Wenn der else-Block ausgeführt wird, setzen wir die Ergebnisvariable auf den gesamten String.

Alternativ können wir den Fehler im else-Block auslösen, z. B. raise IndexError('your message here').

Wir können auch die Methode str.rsplit() verwenden, um alles vor dem letzten Vorkommen des Zeichens zu löschen.

Verwenden Sie rsplit(), um alles vor dem letzten Vorkommen eines Zeichens zu löschen.

Um alles vor dem letzten Vorkommen eines Zeichens zu löschen:

# 🎜🎜#

Verwenden Sie die Methode str.rsplit(), um die Zeichenfolge von rechts zu teilen.

  • Greifen Sie auf das Listenelement bei Index 1 zu.

  • Das Ergebnis ist eine Zeichenfolge, die alles nach dem letzten Vorkommen dieses Zeichens enthält.

  • my_str = 'example.com/articles/python'
    
    result = my_str.rsplit('/', 1)[1]
    print(result)  # ????️ 'python'
    
    # ????️ 如果你想在结果中包含这个字符
    result_2 = '/' + my_str.rsplit('/', 1)[1]
    print(result_2)  # ????️ '/python'
    
    # ????️ ['example.com/articles', 'python']
    print(my_str.rsplit('/', 1))
    Nach dem Login kopieren
  • Wir verwenden die Methode str.rsplit(), um alles zu löschen, bevor das letzte Zeichen erscheint.

    str.rsplit-Methode gibt eine Liste von Wörtern in einer Zeichenfolge zurück, wobei das bereitgestellte Trennzeichen als Trennzeichenfolge verwendet wird.
  • my_str = 'one two three'
    
    print(my_str.rsplit(' '))  # ????️ ['one', 'two', 'three']
    print(my_str.rsplit(' ', 1))  # ????️ ['one two', 'three']
    Nach dem Login kopieren
Diese Methode benötigt die folgenden 2 Parameter:

separator Teilt die Zeichenfolge jedes Mal in Teilzeichenfolgen auf, wenn ein Trennzeichen auftritt

#🎜 🎜#

    maxsplit Führt maxsplit-Aufteilungen höchstens aus, ganz rechts (optional)
  • außer von rechts Außer bei der Aufteilung verhält sich rsplit() wie split().
  • 请注意 ,我们为 maxsplit 参数提供了值 1,因为我们只想从右侧拆分字符串一次。

    my_str = 'example.com/articles/python'
    
    result = my_str.rsplit('/', 1)[1]
    print(result)  # ????️ 'python'
    
    # ????️ ['example.com/articles', 'python']
    print(my_str.rsplit('/', 1))
    Nach dem Login kopieren

    最后一步是访问索引 1 处的列表元素,以获取包含指定字符最后一次出现之后的所有内容的字符串。

    如果要在结果中包含该字符,请使用加法 + 运算符。

    my_str = 'example.com/articles/python'
    
    result = '/' + my_str.rsplit('/', 1)[1]
    print(result)  # ????️ '/python'
    Nach dem Login kopieren

    使用 rpartition() 删除字符最后一次出现之前的所有内容

    或者,我们可以使用 str.rpartition() 方法。

    my_str = 'example.com/articles/python'
    
    result = my_str.rpartition('/')[2]
    print(result)  # ????️ 'python'
    
    # ????️ ('example.com/articles', '/', 'python')
    print(my_str.rpartition('/'))
    Nach dem Login kopieren

    str.rpartition 方法在提供的分隔符的最后一次出现处拆分字符串。

    该方法返回一个包含 3 个元素的元组 - 分隔符之前的部分、分隔符和分隔符之后的部分。

    如果在字符串中找不到分隔符,则该方法返回一个包含两个空字符串的元组,后跟字符串本身。

    如果需要在结果中包含分隔符,请使用 str.join() 方法连接第二个和第三个列表项。

    my_str = 'example.com/articles/python'
    
    result = ''.join(my_str.rpartition('/')[1:])
    print(result)  # ????️ '/python'
    Nach dem Login kopieren

    str.join 方法将一个可迭代对象作为参数并返回一个字符串,该字符串是可迭代对象中字符串的串联。

    调用该方法的字符串用作元素之间的分隔符。

    Das obige ist der detaillierte Inhalt vonSo löschen Sie alles vor oder nach einem bestimmten Zeichen in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage