議事録ファイルをPython正規表現置換でDBに突っ込むINSERT文を作る

例えば、こんな文章

第１回 スーパーシティ型国家戦略特別区域の区域指定に関する専門調査会（議事要旨）

https://www.chisou.go.jp/tiiki/kokusentoc/supercity/senmonchyousakai/dai1/gijiyoushi.pdf

（議事本題の前の部分や、フッタの「第１回 スーパーシティ型国家戦略特別区域の区域指定に関する専門調査会」は削除、前半数ページ抜粋）

```
○喜多参事官 ただいまより「スーパーシティ型国家戦略特別区域の区域指定に関する専
門調査会」を開会いたします。
 会議の出席者はお手元の資料を御覧ください。
 初めに、坂本大臣より発言をよろしくお願いいたします。
○坂本大臣 本日は、お集まりいただき誠にありがとうございます。
 近年、AIやビッグデータを活用し、社会の在り方を根本から変えるような都市設計の動
きが国際的に急速に進展しています。しかしながら、世界において、いまだ「丸ごと未来
都市」は実現されていません。我が国のスーパーシティは住民が参画し、住民目線で2030
年頃に実現される未来社会の先行実現を目指すものです。
 そのポイントは３点あります。
 １つ目は、生活全般にまたがる複数分野の先端的サービス
 ２つ目は、複数分野間でのデータ連携 
3
 ３つ目は、大胆な規制改革であります。
 スーパーシティは、国家戦略特区制度に基づきまして、大胆な規制改革を通して経済社
会の構造改革を牽引する役割であります。また、地域のデジタル化の拠点をつくる取組で
もあり、今後９月に発足するデジタル庁とも密接に連携しながら、その取組を加速化して
まいります。
 今般、情報・デジタル等の専門家にも御参加いただきまして専門調査会を開催し、スー
パーシティの区域指定について議論することとなりました。委員や出席者の皆様におかれ
ましては、自治体からの提案や今後の進め方について忌憚のない御意見を賜り、スーパー
シティ構想の実現に向け、御協力をいただければ幸いでございます。
 本日は、どうぞよろしくお願いいたします。お世話になります。
○喜多参事官 坂本大臣、ありがとうございました。
 それでは、プレスの皆様は御退出願います。
（プレス退室）
○喜多参事官 早速議事に入ります。本日は第１回の会合ですので、最初に本専門調査会
の運営規則（案）についてお諮りしたいと存じます。
 お手元の資料１を御覧ください。本運営規則におきましては、議事の進め方、議事内容
の公表等について定めております。運営規則案について、事前にお送りしておりますが、
このように定めさせていただきたいと存じますが、御異議等はございませんでしょうか。
（「異議なし」の声あり）
○喜多参事官 ありがとうございます。
 続いて、議事２「地方公共団体からのスーパーシティの提案等」についてです。事務局
より説明いたします。
○三浦審議官 内閣府の審議官の三浦でございます。今週着任いたしました。どうぞよろ
しくお願いいたします。座って失礼いたします。
 お手元の資料２を御覧ください。横長のパワーポイントでございます。
 １ページはこれまでのスケジュール、これは復習でございます。去年９月１日に国家戦
略特区法が施行され、去年の年末、12月25日に公募を開始し、４月16日に公募を締め切っ
て31の団体から提案があり、５月には地方公共団体のヒアリングを実施したということで
ございます。
 ２ページ目を御覧ください。今申し上げた31の自治体を地理的にプロットすると、この
ような感じです。北から南まで幅広く御提案をいただいているという形でございます。
 内容でございますけれども、３ページを御覧ください。内容の例ということで、これは
先端的サービスの分野別に横串で７つの分野に分けて整理しております。
 １つ目は左上の箱ですけれども、移動・物流分野、左上の箱です。中に項目が並んでお
りますけれども、自動運転をはじめ、自動というキーワード、ドローンというキーワード、
4
空飛ぶ車、MaaS、カーシェアリング、この辺がキーワードになっています。
 ②で医療・介護の箱は遠隔医療から始まって、ほかに遠隔服薬指導、ウェアラブル端末、
IoT、パーソナルレコード、AIの活用、ドローン、こういった辺りがキーワードです。
 その横は③デジタル・ガバメントで、マイナンバーの活用、インターネット投票の実施。
 左下に行っていただいて、④はエネルギー・環境で、これは太陽光をはじめとした再生
可能エネルギー、マイクログリッド、水素エネルギー等のカーボンニュートラル関係、EV
カーシェアリングといった話。
 その右は⑤防災ということで、位置情報を使って避難誘導していく話とか、インフラ点
検ロボット、また、ドローン、ロボット等の活用といったこと。
 その右、⑥教育・研究開発の箱が一番右の列の真ん中ですけれども、これは遠隔授業、
オンライングローバル教育、AIデータによる個別最適化といった話。
 右下は⑦支払い・その他ということで、キャッシュレス以下、並べております。
 これらがそれぞれ31の自治体の提案にどう盛り込まれているというのを４ページ以降に
参考でつけております。細かくなりますので個々の説明は割愛いたしますけれども、今申
し上げた分野１つだけというよりは、各自治体さんは組み合わせて御提案いただいており
ます。ちょっと字が細かいですけれども、真ん中の列に星取表的に整理しております。幾
つか複数の分野を組み合わせて御提案をいただいておりますが、組み合わせ方、あるいは
それを束ねるコンセプトは、それぞれの自治体の特徴に応じて設定されています。また、
事業を進めるに当たって必要な規制改革の提案を、たくさんあるのでほんの一部ですけれ
ども、一番右の列に記載しております。
 最後に11ページを見ていただいて、これらの提案をめぐって、地方公共団体からヒアリ
ングをいただきました。各40分程度、Web形式でヒアリングをいただいて、ワーキンググル
ープ有識者の皆様、情報・デジタル、個人情報保護の専門家に御参加をいただいて、自治
体からは首長以下皆様に御参加いただいたということであります。
 実績・スケジュールは黄色の箱のとおりということでございます。
 以上、私からの御説明となります。ありがとうございました。
○喜多参事官 ありがとうございました。
 続いて、議事３「地方公共団体からのヒアリング結果」についてです。
 ただいま、事務局より説明があったとおり、５月に自治体からヒアリングを実施いたし
ました。その講評の結果につきまして、資料３に基づき特区ワーキンググループ座長の八
田委員と本日御出席いただいておりますワーキンググループ座長代理の原様より講評の結
果の御説明をお願いいたします。
○八田委員 ありがとうございます。
 それでは、講評の結果を私のから、かいつまんで御説明いたします。
 先ほど大臣がおっしゃいましたように、まずデータ連携の基盤がきちんとしていて、デ
第１回 スーパーシティ型国家戦略特別区域の区域指定に関する専門調査会
ジタル化の拠点に将来なるという要件がございますが、ここに関しては専門家の委員に後
で御説明をお願いいたします。
 ワーキングの私どもが特に注視したのは、どれだけきちんとした岩盤規制の改革を目指
しているかということであります。
 その一つの基準としては、住民合意を要する規制改革をするというのがあります。例え
ば、安全性を理由にこれまで阻止されていた規制改革を、住民が、安全性に関するリスク
を受け入れても、改革すべきだと合意するならば、非常に大きな岩盤規制改革を行えます。
そういう規制の改革を含むということが一つの基準です。
 もう一つは、複数の分野でデータ基盤を活用してスーパーシティに相応しいものをつく
ろうということです。
結果的に今回の提案は、改革の規制の規模が小さかったり、本当に住民合意を必要とす
る改革ではなかったりといった問題を抱えていました。そこで、本来の制度趣旨に立ち返
って、提案自治体において提案内容の見直しをしていただいて、その後、ワーキンググル
ープにおいて二次ヒアリングをし、その過程でハンズオンでいろいろな助言をしていくべ
きではないかということが結果でございます。
 以上です。原委員、補足をお願いします。
```

これを

```sql
INSERT INTO `polilink_api_meetingspeech` (`id`, `order`,
 `speaker`,
 `speech`,
 `description`, `council_id`, `council_meeting_id`)
 VALUES
, 'a963c26aaa934abfaef70d2cc929e3fb', '7e0291703a9f42ca96860013d89f8644'),
 (REPLACE(uuid(), '-', ''),'〇'
,'喜多参事官 '
,'ただいまより「スーパーシティ型国家戦略特別区域の区域指定に関する専門調査会」を開会いたします。 会議の出席者はお手元の資料を御覧ください。 初めに、坂本大臣より発言をよろしくお願いいたします。'
, ''
, 'a963c26aaa934abfaef70d2cc929e3fb', '7e0291703a9f42ca96860013d89f8644'),
 (REPLACE(uuid(), '-', ''),'〇'
,'坂本大臣 '
,'本日は、お集まりいただき誠にありがとうございます。 近年、AIやビッグデータを活用し、社会の在り方を根本から変えるような都市設計の動きが国際的に急速に進展しています。しかしながら、世界において、いまだ「丸ごと未来都市」は実現されていません。我が国のスーパーシティは住民が参画し、住民目線で2030年頃に実現される未来社会の先行実現を目指すものです。 そのポイントは３点あります。 １つ目は、生活全般にまたがる複数分野の先端的サービス ２つ目は、複数分野間でのデータ連携  ３つ目は、大胆な規制改革であります。 スーパーシティは、国家戦略特区制度に基づきまして、大胆な規制改革を通して経済社会の構造改革を牽引する役割であります。また、地域のデジタル化の拠点をつくる取組でもあり、今後９月に発足するデジタル庁とも密接に連携しながら、その取組を加速化してまいります。 今般、情報・デジタル等の専門家にも御参加いただきまして専門調査会を開催し、スーパーシティの区域指定について議論することとなりました。委員や出席者の皆様におかれましては、自治体からの提案や今後の進め方について忌憚のない御意見を賜り、スーパーシティ構想の実現に向け、御協力をいただければ幸いでございます。 本日は、どうぞよろしくお願いいたします。お世話になります。'
, ''
, 'a963c26aaa934abfaef70d2cc929e3fb', '7e0291703a9f42ca96860013d89f8644'),
 (REPLACE(uuid(), '-', ''),'〇'
,'喜多参事官 '
,'坂本大臣、ありがとうございました。 それでは、プレスの皆様は御退出願います。（プレス退室）'
, ''
, 'a963c26aaa934abfaef70d2cc929e3fb', '7e0291703a9f42ca96860013d89f8644'),
 (REPLACE(uuid(), '-', ''),'〇'
,'喜多参事官 '
,'早速議事に入ります。本日は第１回の会合ですので、最初に本専門調査会の運営規則（案）についてお諮りしたいと存じます。 お手元の資料１を御覧ください。本運営規則におきましては、議事の進め方、議事内容の公表等について定めております。運営規則案について、事前にお送りしておりますが、このように定めさせていただきたいと存じますが、御異議等はございませんでしょうか。（「異議なし」の声あり）'
, ''
, 'a963c26aaa934abfaef70d2cc929e3fb', '7e0291703a9f42ca96860013d89f8644'),
 (REPLACE(uuid(), '-', ''),'〇'
,'喜多参事官 '
,'ありがとうございます。 続いて、議事２「地方公共団体からのスーパーシティの提案等」についてです。事務局より説明いたします。'
, ''
, 'a963c26aaa934abfaef70d2cc929e3fb', '7e0291703a9f42ca96860013d89f8644'),
 (REPLACE(uuid(), '-', ''),'〇'
,'三浦審議官 '
,'内閣府の審議官の三浦でございます。今週着任いたしました。どうぞよろしくお願いいたします。座って失礼いたします。 お手元の資料２を御覧ください。横長のパワーポイントでございます。 １ページはこれまでのスケジュール、これは復習でございます。去年９月１日に国家戦略特区法が施行され、去年の年末、12月25日に公募を開始し、４月16日に公募を締め切って31の団体から提案があり、５月には地方公共団体のヒアリングを実施したということでございます。 ２ページ目を御覧ください。今申し上げた31の自治体を地理的にプロットすると、このような感じです。北から南まで幅広く御提案をいただいているという形でございます。 内容でございますけれども、３ページを御覧ください。内容の例ということで、これは先端的サービスの分野別に横串で７つの分野に分けて整理しております。 １つ目は左上の箱ですけれども、移動・物流分野、左上の箱です。中に項目が並んでおりますけれども、自動運転をはじめ、自動というキーワード、ドローンというキーワード、空飛ぶ車、MaaS、カーシェアリング、この辺がキーワードになっています。 ②で医療・介護の箱は遠隔医療から始まって、ほかに遠隔服薬指導、ウェアラブル端末、IoT、パーソナルレコード、AIの活用、ドローン、こういった辺りがキーワードです。 その横は③デジタル・ガバメントで、マイナンバーの活用、インターネット投票の実施。 左下に行っていただいて、④はエネルギー・環境で、これは太陽光をはじめとした再生可能エネルギー、マイクログリッド、水素エネルギー等のカーボンニュートラル関係、EVカーシェアリングといった話。 その右は⑤防災ということで、位置情報を使って避難誘導していく話とか、インフラ点検ロボット、また、ドローン、ロボット等の活用といったこと。 その右、⑥教育・研究開発の箱が一番右の列の真ん中ですけれども、これは遠隔授業、オンライングローバル教育、AIデータによる個別最適化といった話。 右下は⑦支払い・その他ということで、キャッシュレス以下、並べております。 これらがそれぞれ31の自治体の提案にどう盛り込まれているというのを４ページ以降に参考でつけております。細かくなりますので個々の説明は割愛いたしますけれども、今申し上げた分野１つだけというよりは、各自治体さんは組み合わせて御提案いただいております。ちょっと字が細かいですけれども、真ん中の列に星取表的に整理しております。幾つか複数の分野を組み合わせて御提案をいただいておりますが、組み合わせ方、あるいはそれを束ねるコンセプトは、それぞれの自治体の特徴に応じて設定されています。また、事業を進めるに当たって必要な規制改革の提案を、たくさんあるのでほんの一部ですけれども、一番右の列に記載しております。 最後に11ページを見ていただいて、これらの提案をめぐって、地方公共団体からヒアリングをいただきました。各40分程度、Web形式でヒアリングをいただいて、ワーキンググループ有識者の皆様、情報・デジタル、個人情報保護の専門家に御参加をいただいて、自治体からは首長以下皆様に御参加いただいたということであります。 実績・スケジュールは黄色の箱のとおりということでございます。 以上、私からの御説明となります。ありがとうございました。'
, ''
, 'a963c26aaa934abfaef70d2cc929e3fb', '7e0291703a9f42ca96860013d89f8644'),
 (REPLACE(uuid(), '-', ''),'〇'
,'喜多参事官 '
,'ありがとうございました。 続いて、議事３「地方公共団体からのヒアリング結果」についてです。 ただいま、事務局より説明があったとおり、５月に自治体からヒアリングを実施いたしました。その講評の結果につきまして、資料３に基づき特区ワーキンググループ座長の八田委員と本日御出席いただいておりますワーキンググループ座長代理の原様より講評の結果の御説明をお願いいたします。'
, ''
, 'a963c26aaa934abfaef70d2cc929e3fb', '7e0291703a9f42ca96860013d89f8644'),
 (REPLACE(uuid(), '-', ''),'〇'
,'八田委員 '
,'ありがとうございます。 それでは、講評の結果を私のから、かいつまんで御説明いたします。 先ほど大臣がおっしゃいましたように、まずデータ連携の基盤がきちんとしていて、デ第１回 スーパーシティ型国家戦略特別区域の区域指定に関する専門調査会ジタル化の拠点に将来なるという要件がございますが、ここに関しては専門家の委員に後で御説明をお願いいたします。 ワーキングの私どもが特に注視したのは、どれだけきちんとした岩盤規制の改革を目指しているかということであります。 その一つの基準としては、住民合意を要する規制改革をするというのがあります。例えば、安全性を理由にこれまで阻止されていた規制改革を、住民が、安全性に関するリスクを受け入れても、改革すべきだと合意するならば、非常に大きな岩盤規制改革を行えます。そういう規制の改革を含むということが一つの基準です。 もう一つは、複数の分野でデータ基盤を活用してスーパーシティに相応しいものをつくろうということです。結果的に今回の提案は、改革の規制の規模が小さかったり、本当に住民合意を必要とする改革ではなかったりといった問題を抱えていました。そこで、本来の制度趣旨に立ち返って、提案自治体において提案内容の見直しをしていただいて、その後、ワーキンググループにおいて二次ヒアリングをし、その過程でハンズオンでいろいろな助言をしていくべきではないかということが結果でございます。 以上です。原委員、補足をお願いします。'
```

こんなSQLに置換します。
（正しいSQLにするには、このあと、6行目を削除し、最終行に固定2行をコピペ追加して、末尾を「;」にして仕上げます）

```py:replacer.py
import re

file_name = "./text.txt"

with open(file_name, encoding="utf-8") as f:
    data_lines = f.read()

    # 文字列置換

    data_lines = re.sub(r'^\d*\n', r"", data_lines, flags=re.MULTILINE) #①

    data_lines = re.sub(r'〇', r'○', data_lines, flags=re.MULTILINE)  #②　#2種類の〇
    data_lines = re.sub(r'(○)(.* )', r"\n\1\n\n\2\n\n", data_lines, flags=re.MULTILINE) #③
    data_lines = re.sub(r'(（)(.* )', r"\n\1\n\n\2\n\n", data_lines, flags=re.MULTILINE)
    data_lines = re.sub(r'(＜)(.* )', r"\n\1\n\n\2\n\n", data_lines, flags=re.MULTILINE)


    data_lines = re.sub(r'\n\n', r"★", data_lines, flags=re.MULTILINE) #④
    data_lines = re.sub(r'\n', r"", data_lines, flags=re.MULTILINE) #⑤
    data_lines = re.sub(r'★', r"\n", data_lines, flags=re.MULTILINE) #⑥

    data_lines = re.sub(r'^', r",'", data_lines, flags=re.MULTILINE) #⑦
    data_lines = re.sub(r'$', r"'", data_lines, flags=re.MULTILINE) #⑧

    data_lines = re.sub(r",'○'", r", ''\n, 'a963c26aaa934abfaef70d2cc929e3fb', '7e0291703a9f42ca96860013d89f8644'),\n (REPLACE(uuid(), '-', ''),'〇'", data_lines, flags=re.MULTILINE) #⑨

    data_lines = re.sub(r"^, ''", r"INSERT INTO `polilink_api_meetingspeech` (`id`, `order`,\n `speaker`,\n `speech`,\n `description`, `council_id`, `council_meeting_id`)\n VALUES", data_lines) #⑩



# 同じファイル名で保存
with open(file_name, mode="w", encoding="utf-8") as f:
    f.write(data_lines)

```

①各ページのページ番号部分を削除
②人名の前についている◯がたまにぶれているので、統一
③◯と次の半角空白を選択し、その前に改行、途中に改行２つ、後ろに改行２つをセット
　議事録によって、人名の前が◯じゃない場合もあるので、その場合はその文字で同様の処理
④改行２つを★に置換（これが最終的に改行にしたいもの＝DBカラムに対応）
⑤改行を削除（PDF上の改行は単語を切ってしまったりして、検索しにくくなるので）
⑥★を改行に戻す
⑦文頭に「,'」
⑧文末に「'」
⑨◯の部分＝名前カラムの前にその他固定的に付加するカラムの部分を追記
⑩全体の先頭に、INSERT文追記（ここだけは、flags=re.MULTILINE　を付けないことにより、全体の先頭1回だけ処理）

こんな感じです。

## なんですかこれは？？

https://polilink-web.netlify.app/

まだまだ開発中ですが、これのデータ登録を支援するスクリプトでした。