Python の正規表現を学習しています。この問題について最初に助けてくれた Jerry に感謝します。私はこの正規表現をテストしました:
(\b\w+\b)?[^a-z]*(\b\w+\b)?[^a-z]*(\b\w+\b)?[^a-z]*(\b\w+\b)?[,;]\s*(\b\w+\b)?[^a-z]*(\b\w+\b)?[^a-z]*(\b\w+\b)?[^a-z]*(\b\w+\b)?
http://regex101.com/で、私が探しているものを見つけます。それは、文のコンマの前にある 4 つの単語と、コンマの後の 4 つの単語です。文頭のコンマの前に 2 つの単語が 3 つある場合、クラッシュすることはありません。私が使用しているテスト文は次のとおりです。
waiting for coffee, waiting for coffee and the charitable crumb.
現在、正規表現は次を返します。
[('waiting', 'for', 'coffee', '', 'waiting', 'for', 'coffee', 'and')]
セットの 4 番目のメンバーが空である理由がよくわかりません。私が望むのは、正規表現がこの場合、コンマの前の 3 とコンマの後の 4 のみを返すことですが、コンマの前に 4 つの単語がある場合は、4 を返すようにします。正規表現は言語によって異なることは知っていますが、これは Python に欠けているものですか?