いろいろ倉庫

KNIME、EXCEL、R、Pythonなどの備忘録

【Python】正規表現で文字列を抜き出したい

・お題:長い文字列の中から、条件にあてはまる文字列を抜き出したい。

 

・先日メモした正規表現を使う。とりあえず、ライブラリをインポート。

import re

・例文を作成。

mojiretsu="私の名前は田中たろうです。私は1900年10月1日生まれです。生まれはA県、小学生の頃にB県に引っ越し、大学はC大学へ進学しました。"

 

・まず、名前を抜き出してみる。

a=re.search(r"私の名前は.+です。",mojiretsu)
a.group()

とすると、

'私の名前は田中たろうです。私は1900年10月1日生まれです。'

が返ってくる。.+の文字数が何文字でも許容されるので、次の文末の「です。」まで抜き出されている。

名前の文字数を制限してみる。

a=re.search(r"私の名前は.{1,8}です。",mojiretsu)
a.group()

とすると、

'私の名前は田中たろうです。'

が返ってきた。形式上、欲しい情報が取れてきた。

・次に、最初に出てきた日付を抜き出してみる。

a=re.search(r"[0-9]{1,4}年[0-9]{1,2}月[0-9]{1,2}日",mojiretsu)
a.group()

'1900年10月1日'

が返ってきた。

 

・次に、2番目の日付を抜き出してみる。

b=re.findall(r"[0-9]{1,4}年[0-9]{1,2}月[0-9]{1,2}日",mojiretsu)

とすると、bは正規表現がヒットした文字列のリストになる(['1900年10月1日', '1910年8月30日'])。

b[1]とすれば、'1910年8月30日'が返ってくる。

 

おわり。