Heim >Backend-Entwicklung >Python-Tutorial >Das Python-Kochbuch (String und Text) teilt String-Operationen für eine beliebige Anzahl von Trennzeichen auf

Das Python-Kochbuch (String und Text) teilt String-Operationen für eine beliebige Anzahl von Trennzeichen auf

不言
不言Original
2018-04-19 13:40:371577Durchsuche

Dieser Artikel stellt hauptsächlich das Python-Kochbuch (String und Text) zum Teilen von Zeichenfolgen mit einer beliebigen Anzahl von Trennzeichen vor. Es analysiert die String-Aufteilungsoperationen von Python mithilfe von split() und regulären Ausdrücken in Form von Beispielen Implementierungstipps finden Sie unter

. In diesem Artikel wird der Python-String-Splitting-Vorgang für eine beliebige Anzahl von Trennzeichen beschrieben. Geben Sie es wie folgt als Referenz an alle weiter:

Problem: Teilen Sie eine Zeichenfolge mit inkonsistenten Trennzeichen (und Leerzeichen zwischen Trennzeichen) in verschiedene Felder auf;

Lösung: Verwenden Sie die flexiblere re.split()-Methode, die mehrere Muster für das Trennzeichen angeben kann.

Hinweis: Split() des String-Objekts kann nur einfache Fälle verarbeiten, unterstützt nicht mehrere Trennzeichen und kann keine Auswirkungen auf mögliche Leerzeichen um die Trennzeichen haben.

# example.py
#
# Example of splitting a string on multiple delimiters using a regex
import re #导入正则表达式模块
line = 'asdf fjdk; afed, fjek,asdf,   foo'
# (a) Splitting on space, comma, and semicolon
parts = re.split(r'[;,\s]\s*', line)
print(parts)
# (b) 正则表达式模式中使用“捕获组”,需注意捕获组是否包含在括号中,使用捕获组导致匹配的文本也包含在最终结果中
fields = re.split(r'(;|,|\s)\s*', line)
print(fields)
# (c) 根据上文的分隔字符改进字符串的输出
values = fields[::2]
delimiters = fields[1::2]
delimiters.append('')
print('value =', values)
print('delimiters =', delimiters)
newline = ''.join(v+d for v,d in zip(values, delimiters))
print('newline =', newline)
# (d) 使用非捕获组(?:...)的形式实现用括号对正则表达式模式分组,且不输出分隔符
parts = re.split(r'(?:,|;|\s)\s*', line)
print(parts)

>>> ================================ RESTART ================================
>>>
['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']
['asdf', ' ', 'fjdk', ';', 'afed', ',', 'fjek', ',', 'asdf', ',', 'foo']
value = ['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']
delimiters = [' ', ';', ',', ',', ',', '']
newline = asdf fjdk;afed,fjek,asdf,foo
['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']
>>>

(Code stammt aus „Python Cookbook“)

Verwandte Empfehlungen:

PythonCookbook – Datenstrukturen und Algorithmen

Das obige ist der detaillierte Inhalt vonDas Python-Kochbuch (String und Text) teilt String-Operationen für eine beliebige Anzahl von Trennzeichen auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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
Vorheriger Artikel:Python-Zuweisung und -KopieNächster Artikel:Python-Zuweisung und -Kopie