Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで複数の区切り文字で文字列を分割するにはどうすればよいですか?


問題

文字列をフィールドに分割する必要がありますが、区切り文字は文字列全体で一貫していません。

解決策

Pythonで1つまたは複数の区切り文字の文字列を分割する方法は複数あります。最も簡単なアプローチはsplit()メソッドを使用することですが、これは単純なケースを処理することを目的としています。

re.split() is more flexible than the normal `split()` method in handling complex string scenarios.

re.split()を使用すると、セパレーターに複数のパターンを指定できます。ソリューションに示されているように、区切り文字はahyphen(-)、whitespace()、またはコンマ(、)の後に続く値です。正規表現のドキュメントはここにあります。

そのパターンが見つかると、一致全体が、一致の両側にあるフィールド間の区切り文字になります。

区切り文字の間のテキストのみを抽出します(区切り文字なし)。

import re
tennis_greats = 'Roger-federer, Rafael nadal, Novak Djokovic,Andy murray'
""""
#-----------------------------------------------------------------------------
# Scenario 1 - Output the players
# Input - String with multiple delimiters ( - , white space)
# Code - Specify the delimters in []
#-----------------------------------------------------------------------------
"""
players = re.split(r'[-,\s]\s*',tennis_greats)

出力

print(f" The output is - {players}")

出力は-

です
['Roger', 'federer', 'Rafael', 'nadal', 'Novak', 'Djokovic', 'Andy', 'murray']

区切り文字と区切り文字の間のテキストを抽出します

import re
tennis_greats = 'Roger-federer, Rafael nadal, Novak Djokovic,Andy murray'
""""
#-----------------------------------------------------------------------------
# Scenario 2 - Output the players and the delimiters
# Input - String with multiple delimiters ( - , white space)
# Code - Specify the delimters between pipe (|)
#-----------------------------------------------------------------------------
"""
players = re.split(r'(-|,|\s)\s*',tennis_greats)

出力

print(f" The output is - {players}")

出力は-

です
['Roger', '-', 'federer', ',', 'Rafael', ' ', 'nadal', ',', 'Novak', ' ', 'Djokovic', ',', 'Andy', ' ', 'murray']

  1. Bokeh(Python)で画像を操作する方法は?

    Bokehで画像を操作するには、 image_url()を使用します メソッドと画像のリストを渡します。 ステップ :func:show のときにファイルに保存された出力を生成するように、デフォルトの出力状態を構成します と呼ばれます。 プロット用の新しい図を作成します。 指定されたURLから読み込まれた画像をレンダリングします。 Bokehオブジェクトまたはアプリケーションをすぐに表示します。 例 from bokeh.plotting import figure, show, output_file output_file('image.html') p = fi

  2. Excel でテキストを複数の区切り記号を持つ列に変換する方法

    テキストを列に変換する 私たちの日常生活でよくあることです。数え切れないほどの状況で、テキストを列に分割する必要があり、これが Microsoft Excel の優れた点です。 この記事では、Excel で複数の区切り記号を使用してテキストを列に変換する方法の詳細をすべて探ります。 . Excel でテキストを複数の区切り記号を持つ列に変換する 6 つの方法 この機会に、ベストセラーのリストを想定して B4:B13 に表示されるデータセット 書籍名、著者、ジャンルを含むセル 桁。このシナリオでは、本の名前を分割したいと考えています。 、作者 、ジャンル 個別の列に。したがって、遅滞なく、