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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Python

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

Q&A

解決済

1回答

761閲覧

正規表現の中身について

masamuneyuya

総合スコア12

Python

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

0グッド

0クリップ

投稿2020/04/03 07:13

import re

def between_markers(text: str, begin: str, end: str) -> str:
"""
returns substring between two given markers
"""
# your code here
return re.findall(f"{begin}.*{end}", text)[0][1:-1]

if name == 'main':
print('Example:')
print(between_markers('What is >apple<', '>', '<'))

コード

ある問題を解いていてわからなかったので回答をみたところこのようなコードでした。 しかし、re.findallの中身についての意味が調べてもよくわからなったのでどなたかご教授ください。 ### 発生している問題・エラーメッセージ

エラーメッセージ

### 該当のソースコード python ```ここに言語名を入力 ソースコード

試したこと

ここに問題に対して試したことを記載してください。

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

ここにより詳細な情報を記載してください。

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

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

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

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

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

coco_bauer

2020/04/03 07:31

googleで"re.findall"を検索したら、「Pythonの正規表現モジュールreの使い方(match、search、subなど)」(https://note.nkmk.me/python-re-match-search-findall-etc/)のようなページが見つかるでしょ? そもそも、その問題の文章が理解できていますか?
guest

回答1

0

ベストアンサー

between_markers("What is >apple<", ">", "<") の呼び出し例でいうと、

  1. f"{begin}.*{end}" は begin と end は引数に渡した文字列で置換されます。

re.findall("\>.*\<", text)
2. findall() で text 中に正規表現 \>.*\< にマッチする文字列を検索し、マッチした一覧が返されます。(re.findall(f"\{begin}.*\{end}", text))
['>apple<']
3. そのうち、最初に見つかった文字列を取得します。(re.findall(f"\{begin}.*\{end}", text)[0])
'>apple<'
4. 最初と最後の文字を除いた文字列を返します。(re.findall(f"\{begin}.*\{end}", text)[0][1:-1])
apple

正規表現について知らない場合は、別途勉強してください。

基本的な正規表現一覧 | murashun.jp

今回の正規表現 \>.*\<>(一文字以上の文字列)< を表します。

投稿2020/04/03 07:30

編集2020/04/03 07:32
tiitoi

総合スコア21956

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問