Python teilt Zeichenfolgen für eine beliebige Anzahl von Trennzeichen auf (Code im Anhang)

不言
Freigeben: 2018-11-27 15:50:15
nach vorne
3109 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit der Aufteilung von Zeichenfolgen in Python (mit Code). Ich hoffe, dass er für Sie hilfreich ist.

1. Anforderungen

Wir müssen die Zeichenfolge in verschiedene Felder aufteilen, aber die Trennzeichen (und die Leerzeichen zwischen den Trennzeichen) sind in der gesamten Zeichenfolge nicht konsistent.

2. Lösung

Die Methode split() des String-Objekts kann nur sehr einfache Situationen verarbeiten und unterstützt keine Mehrfachtrennzeichen Situation. Wenn einige flexiblere Funktionen benötigt werden, sollte die Methode re.split() verwendet werden:

import re
line='abc def ; ghi, jkl,mno, pkr'
#分隔符:分号,都逗号,空格符,前后可以跟着任意数量的额外空格
result=re.split(r'\s*[;,\s]\s*',line)
print(result)
Nach dem Login kopieren

Ergebnis:

['abc', 'def', 'ghi', 'jkl', 'mno', 'pkr']
Nach dem Login kopieren
Nach dem Login kopieren

3. Analyse

re.split() ist nützlich, da mehrere Muster für Trennzeichen angegeben werden können. In der obigen Lösung sind die Trennzeichen beispielsweise: Semikolon, Komma, Leerzeichen, und es können beliebig viele zusätzliche Leerzeichen folgen. Wie das von str.split() erhaltene Ergebnis ist das Endergebnis eine Feldliste.

Bei der Verwendung von re.split() müssen Sie vorsichtig sein, ob die einfangende Gruppe im regulären Ausdrucksmuster in Klammern enthalten ist.

Wenn Erfassungsgruppen verwendet werden, wird der passende Text auch in das Endergebnis einbezogen. Schauen Sie sich zum Beispiel den folgenden Fall an:

import re
line='abc def ; ghi, jkl,mno, pkr'
result=re.split(r'\s*(;|,|\s)\s*',line)
print(result)
Nach dem Login kopieren

Ergebnis:

['abc', ' ', 'def', ';', 'ghi', ',', 'jkl', ',', 'mno', ',', 'pkr']
Nach dem Login kopieren

Es kann auch nützlich sein, das Trennzeichen in einem bestimmten Kontext zu erhalten. Um beispielsweise die Ausgabe einer Zeichenfolge mit einem Trennzeichen zu verbessern:

import re
line='abc def ; ghi, jkl,mno, pkr'
result=re.split(r'\s*(;|,|\s)\s*',line)

values=result[::2]
delimiters=result[1::2]+['']

print(values)
print(delimiters)

last=''.join(v+d for v,d in zip(values,delimiters))
print(last)
Nach dem Login kopieren

Ergebnis:

['abc', 'def', 'ghi', 'jkl', 'mno', 'pkr']
[' ', ';', ',', ',', ',', '']
abc def;ghi,jkl,mno,pkr
Nach dem Login kopieren

Wenn Sie in den Ergebnissen keine Trennzeichen sehen, diese aber dennoch verwenden möchten Symbole für Regex-Muster. Stellen Sie beim Gruppieren sicher, dass Sie eine nicht einfangende Gruppe verwenden, angegeben in der Form (?:...). Beispiel ist wie folgt:

import re
line='abc def ; ghi, jkl,mno, pkr'
result=re.split(r'\s*(?:;|,|\s)\s*',line)

print(result)
Nach dem Login kopieren

Ergebnis:

['abc', 'def', 'ghi', 'jkl', 'mno', 'pkr']
Nach dem Login kopieren
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonPython teilt Zeichenfolgen für eine beliebige Anzahl von Trennzeichen auf (Code im Anhang). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!