・お題:長い文字列の中から、条件にあてはまる文字列を抜き出したい。
・先日メモした正規表現を使う。とりあえず、ライブラリをインポート。
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日'が返ってくる。
おわり。