質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2246閲覧

pythonでテキストファイルの指定範囲を抜き出したい

popoto

総合スコア1

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

2クリップ

投稿2021/01/10 05:15

前提・実現したいこと

テキストファイルのここからここまでの範囲をぬきだし、表示するコードをpythonで作成したいのですが、、似たような表現を見つけても初心者のため、改善方法が分かりませんせんでした。ご教授いただければ幸いです。

テキストファイル

test.txt 繰り返し文~ : : for文の例 #include <stdio.h> He int main() { int i; for (i = 1; i <= 10; i++) { printf("Hello!\n"); } } 10回繰り返される。 : : while文の例 : :

抜き出したい文

for文の例 #include <stdio.h> He int main() { int i; for (i = 1; i <= 10; i++) { printf("Hello!\n"); } } 10回繰り返される。

補足情報(FW/ツールのバージョンなど)

python3

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ppaul

2021/01/10 06:11

この例だけができれば良いのですか。それとも一般的な答えが必要ですか。
popoto

2021/01/10 13:03

この例以外にもループ部分の抽出などの例もあると嬉しいです。
guest

回答1

0

ベストアンサー

色んなやり方があります。1行ずつ回して判定するとか、

# test.txtが何の文字コードで保存されているか注意。 # (もしWindowsを使っていてうまく行かないなら、↓をutf-8からshift_jisに変更。) with open("./test.txt", encoding="utf-8") as f: find = False # ファイルを1行ずつよみこみます。 for line in f.readlines(): if "for文の例" in line: find = True if find: print(line) if "10回繰り返される。" in line: find = False

正規表現使うとか。

import re with open("./test.txt", encoding="utf-8") as f: # ファイルの中身全部をtxtに取り込みます。 txt = f.read() # 正規表現で「for文の。。」までの文章を置換して全部消します。 # (DOTALLフラグで正規表現の.(ドット)を改行も含むように指定して、複数行まとめて消します。 txt = re.sub(r'^.+for文の例', 'for文の例', txt, flags=re.DOTALL) # 同じく後ろを消します。 txt = re.sub(r'10回繰り返される。.+$', '10回繰り返される。', txt, flags=re.DOTALL) print(txt)

投稿2021/01/10 05:43

編集2021/01/10 05:52
umau

総合スコア805

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

popoto

2021/01/11 06:21

ご回答ありがとうございました。とても分かりやすい説明で初心者でもコードの処理を理解することができました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問