はじめに
Python では、文字列はシングルクォートまたはダブルクォートで囲まれた文字のシーケンスです。時々、文字列から個々の単語を抽出する必要があります。このチャレンジでは、文字列を受け取り、単語のリストを返す関数を書くことが課題となっています。
文字列を単語に変換する
文字列sとオプションのpattern文字列を引数として受け取り、文字列内の単語のリストを返す関数string_to_words(s: str, pattern: str = '[a-zA-Z-]+') -> List[str]を書きます。
- 関数は、提供された
patternを使ってre.findall()を使って、すべての一致する部分文字列を見つける必要があります。 pattern引数が提供されない場合、関数は既定の正規表現を使う必要があり、これは英数字とハイフンを一致させます。
import re
def words(s, pattern = '[a-zA-Z-]+'):
return re.findall(pattern, s)
words('I love Python!!') ## ['I', 'love', 'Python']
words('python, javaScript & coffee') ## ['python', 'javaScript', 'coffee']
words('build -q --out one-item', r'\b[a-zA-Z-]+\b')
## ['build', 'q', 'out', 'one-item']
まとめ
このチャレンジでは、Python で正規表現を使って文字列から個々の単語を抽出する方法を学びました。これで、この関数を使って文字列を単語に分割し、それらに対してさらなる操作を行うことができます。