Python は任意の数の区切り文字で文字列を分割します (コードは添付されています)

不言
リリース: 2018-11-27 15:50:15
転載
3150 人が閲覧しました

この記事で紹介する内容は、区切り文字の数に応じて文字列 (コード付き) を分割する Python に関するものです。一定の参考値があります。困っている友人は参考にしてください。お役に立てれば幸いです。

1. 要件

文字列をさまざまなフィールドに分割する必要がありますが、区切り文字 (および区切り文字間のスペース) が文字列全体に含まれており、一貫性がありません。

2. 解決策

文字列オブジェクトの Split() メソッドは、非常に単純な状況のみを処理でき、複数の区切り文字をサポートしません。状況。より柔軟な関数が必要な場合は、 re.split() メソッドを使用する必要があります:

import re
line='abc def ; ghi, jkl,mno, pkr'
#分隔符:分号,都逗号,空格符,前后可以跟着任意数量的额外空格
result=re.split(r'\s*[;,\s]\s*',line)
print(result)
ログイン後にコピー

結果:

['abc', 'def', 'ghi', 'jkl', 'mno', 'pkr']
ログイン後にコピー
ログイン後にコピー

3. 分析

re.split() は区切り文字に複数のパターンを指定できるので便利です。たとえば、上記の解決策では、区切り文字はセミコロン、カンマ、スペースであり、その後に任意の数の追加のスペースを続けることができます。 str.split() で得られる結果と同様に、最終結果はフィールド リストです。

re.split() を使用する場合は、正規表現パターン内のキャプチャ グループが括弧内に含まれているかどうかに注意する必要があります。

キャプチャ グループが使用されている場合、一致するテキストも最終結果に含まれます。たとえば、次の場合を考えてみましょう:

import re
line='abc def ; ghi, jkl,mno, pkr'
result=re.split(r'\s*(;|,|\s)\s*',line)
print(result)
ログイン後にコピー

結果:

['abc', ' ', 'def', ';', 'ghi', ',', 'jkl', ',', 'mno', ',', 'pkr']
ログイン後にコピー

特定のコンテキストで区切り文字を取得することも役立つ場合があります。たとえば、区切り文字を含む文字列の出力を改善するには:

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)
ログイン後にコピー

結果:

['abc', 'def', 'ghi', 'jkl', 'mno', 'pkr']
[' ', ';', ',', ',', ',', '']
abc def;ghi,jkl,mno,pkr
ログイン後にコピー

結果に区切り文字を表示したくないが、それでも使用したい場合は、正規表現パターンの記号 グループ化では、(?:...) の形式で指定された非キャプチャ グループを使用してください。例は次のとおりです:

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

print(result)
ログイン後にコピー

結果:

['abc', 'def', 'ghi', 'jkl', 'mno', 'pkr']
ログイン後にコピー
ログイン後にコピー

以上がPython は任意の数の区切り文字で文字列を分割します (コードは添付されています)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート