複数の単語境界区切り文字を使用して文字列を単語に分割する 質問する

複数の単語境界区切り文字を使用して文字列を単語に分割する 質問する

私がやりたいことはかなり一般的なタスクだと思いますが、Web 上で参考になるものが見つかりませんでした。句読点付きのテキストがあり、単語のリストが欲しいのです。

"Hey, you - what are you doing here!?"

すべきである

['hey', 'you', 'what', 'are', 'you', 'doing', 'here']

しかし、Python はstr.split()1 つの引数でしか動作しないため、空白で分割した後、すべての単語に句読点が付きます。何かアイデアはありますか?

ベストアンサー1

再分割()

re.split(パターン、文字列[、最大分割数=0])

パターンの出現箇所で文字列を分割します。パターンでキャプチャ括弧が使用されている場合、パターン内のすべてのグループのテキストも結果のリストの一部として返されます。maxsplit が 0 以外の場合、最大 maxsplit 回の分割が行われ、文字列の残りがリストの最後の要素として返されます。(非互換性に関する注意: オリジナルの Python 1.5 リリースでは、maxsplit は無視されていました。これは、それ以降のリリースで修正されました。)

>>> re.split('\W+', 'Words, words, words.')
['Words', 'words', 'words', '']
>>> re.split('(\W+)', 'Words, words, words.')
['Words', ', ', 'words', ', ', 'words', '.', '']
>>> re.split('\W+', 'Words, words, words.', 1)
['Words', 'words, words.']

おすすめ記事