pythonでテキストから特定のコンテンツを取得する方法
指定された内容をテキストから抽出するには、正規表現または文字列メソッドを使用します。
正規表現を使用して特定のコンテンツを抽出するサンプルコードを以下に示します。
import re
text = "Hello, my name is John. My email address is john@example.com."
# 提取邮箱地址
email_pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
emails = re.findall(email_pattern, text)
print(emails) # 输出: ['john@example.com']
# 提取姓名
name_pattern = r'\b[A-Z][a-z]+\b'
names = re.findall(name_pattern, text)
print(names) # 输出: ['Hello', 'John']
上のコードはre.findall()関数を使ってテキストから指定したパターンにマッチした内容をすべて取得しています。パターンには正規表現が使用されており、マッチのルールを定義しています。
テキスト内の特定のサブストリングを取得する場合は、文字列メソッドを使用することもできます。たとえば、テキスト内のサブストリングを取得したい場合は、文字列の find() メソッドまたは index() メソッドを使用してサブストリングの開始位置を検索し、その後スライス操作を使用してサブストリングを取得できます。
text = "Hello, my name is John. My email address is john@example.com."
# 提取邮箱地址
email_start = text.find("email address is")
email_end = text.find(".", email_start)
email = text[email_start + len("email address is"):email_end]
print(email) # 输出: john@example.com
# 提取姓名
name_start = text.find("my name is")
name_end = text.find(".", name_start)
name = text[name_start + len("my name is"):name_end]
print(name) # 输出: John
上のコードは find()メソッドを使って、指定された部分文字列の開始位置を見つけ、それからスライス操作を使って部分文字列を抽出しています。
正規表現でも文字列メソッドでも、テキストの形式や目的に応じて内容を抜き出す適切な方法を選択できます。