@taka0912

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Python で文字列内の@以降を切り取る方法

Q&A

Closed

例題1

recursion@info.comの@のインデックスの位置を調べましょう。

email = "recursion@info.com"

printで出力してください。

print(email.find('@'))

例題2

例題1で求めたインデックスを@の位置として変数atLocationに入れましょう。

atLocation = email.find('@')

変数atLocationを使って、recursion@info.comの@以降を切り取りましょう。

printで出力してください。

例題2が分かる方ご協力よろしくお願いします。

0 likes

1Answer

TL; DR(概要)

email = 'recursion@info.com'

atLocation = email.find('@')
print(email[atLocation:])

# 出力結果
# @info.com

TS; DR(詳細)

文字列もリストの1種です。つまり1文字ずつがリストのようになっており、同じように取り出せます。

email = 'recursion@info.com'

# 1文字目を取り出す
print(email[0])

# 18 文字目を取り出す
print(email[17])

# 出力結果
# r
# m

リストと同じように扱えるということは、スライスを使うこともできるということです。

つまり、.find('@') で見つけた @ の位置から後をスライスで切り取ると、@ 以降が取り出せます。

email = 'recursion@info.com'
atLocation = email.find('@')

# @以降をスライス(ドメイン名)
mailDomain = email[atLocation:]
print(mailDomain) # --> @info.com

# @より前をスライス(ユーザー名)
mailUser = email[:atLocation]
print(mailUser) # --> recursion

# 7文字目から@までをスライス(6〜9 の位置の文字)
mailUser = email[6:atLocation]
print(mailUser) # --> ion

# 出力結果
# @info.com
# recrusion
# ion

また、文字列を「@」の位置で2つに分けて配列にして取り出すという方法もあります。

mailStructure=email.split('@')
print(mailStructure)

# 出力結果
# ['recursion', 'info.com']
1行で出力する合わせ技
print('@' + 'recursion@info.com'.split('@')[1])

# 出力結果
# @info.com

参考文献

P.S.

質問することは良いことなのですが、できれば Qiita 質問のガイドラインを読んでいただきたいです。

と言うのも、タイトルから質問の内容がわかりづらく、開かないと内容がわからない質問は答えたくない気分になるからです。一方的に送りつけてきて、中身を見ないとわからない DM のような気分というか。

同じような疑問を持った人にも役に立つように」というのが Qiita の本質というか、Qiita 質問と他の Q&A サービスとの違いだと考えています。

タイトルや質問は編集できるので、わかりやすいように工夫していただけると答えやすくなりますし、同じように悩んだ人にも役立つ質問になると思います。いまの状態だと、夏休みの宿題を丸投げしているように見えてしまっています。

4Like

Comments

  1. 例えば「Python で文字列内の@以降を切り取る方法」といったタイトルです。
  2. @taka0912

    Questioner

    わかりやすいご回答ありがとうございます。
    また、タイトルの件大変失礼いたしました。
    今後から気をつけます。

Your answer might help someone💌