示例#1
0
# coding: utf-8
u"""
テンプレートの抽出
記事中に含まれる「基礎情報」テンプレートのフィールド名と値を抽出し,
辞書オブジェクトとして格納せよ。
"""

import ch03_01
import re

text = ch03_01.extract('イギリス')

pattern = re.compile(
    r'''
    ^\{\{基礎情報.*?$   # '{{基礎情報'で始まる行
    (.*?)       # キャプチャ対象、任意の0文字以上、非貪欲
    ^\}\}$      # '}}'の行
    ''', re.MULTILINE + re.VERBOSE + re.DOTALL)

contents = pattern.findall(text)

pattern = re.compile(r'''
    ^\|(.+?)\s*=\s*(.+?)(?:(?=\n\|)|(?=\n$))
    ''', re.MULTILINE + re.VERBOSE + re.DOTALL)

fields = pattern.findall(contents[0])

dic = {}
for k, v in fields:
    dic[k] = v
    print(k, v)
示例#2
0
# coding: utf-8
u"""
セクション構造
記事中に含まれるセクション名とそのレベル(例えば"==セクション名=="なら1)を表示せよ。
"""

import ch03_01
import re

text = ch03_01.extract('イギリス').split('\n')

pattern = r'^(={2,})\s*(.*?)\s*\1.*$'

for line in text:
    true = re.search(pattern, line)
    if true is not None:
        print(len(true.group(1)) - 1, true.group(2))