質問: re.split(pat, street_address) street_address_li ``` **出力結果** ``` ['', '東京都', '港区', '六本木6-10-1', ''] ``` ### 質問 結果の前後になぜ `''` が入ってしまうのでしょうか? わかる方いらっしゃればご教示願います。 ※業務に支障はないのですが、理屈を知りたいという感じです。
回答: `re.split()` は正規表現を区切りとして、区切り以外の部分を抽出してリスト化する関数です。`street_address`は区切り文字列で始まっているので、空文字列が抽出されます。特殊な動作として、区切り文字正規表現にキャプチャがあるとキャプチャされた文字列も結果に入ります。 例示されているような用途に`re.split()`を使うのはとても奇妙で、`re.search()`か`re.match()`を使うのが適切ではないでしょうか。 ``` match = re.search(pat, street_address) # 都道府県、市区町村、その他を表示 print(match.group(1), match.group(2), match.group(3)) ```