Heim  >  Artikel  >  Backend-Entwicklung  >  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
WBOYnach vorne
2023-05-01 19:10:042245Durchsuche

my_str = 'fql!jiyik!com'

separator = '!'

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

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))

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!

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'

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!'

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!'

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))

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!'

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

    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'

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'

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')

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'

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'

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))
  • 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']
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))

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

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

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

    使用 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('/'))

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

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

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

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

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

    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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen