Pythonのfind()で文字列内の複数の特定文字を見つける方法
【サンプルコード】
text = "こんにちは、Pythonを学んでいます。Pythonは楽しいです。"
keyword = "Python"
positions = []
current = 0
while True:
index = text.find(keyword, current)
if index == -1:
break
positions.append(index)
current = index + 1
print(positions)
【実行結果】
[6, 20]
上記のPythonのサンプルコードは、文字列内で指定したキーワードが出現する全ての位置を見つける方法を示しています。
まず、text
変数に検索対象の文字列を、keyword
変数に検索したいキーワードを定義しています。上記のkeyword
では「Python」という文字列を定義しており、このキーワードをtext
内で探します。
探す対象のtext
は「こんにちは、Pythonを学んでいます。Pythonは楽しいです。」という文字列です。
positions
というリストは、キーワードが見つかった位置のインデックスを保存するために使用されます。その後、while
ループを使って、text
内でkeyword
を繰り返し検索します。
text.find(keyword, current)
は、current
の位置からkeyword
を検索し、見つかった場所のインデックスを返します。もしkeyword
が見つからない場合、find
メソッドは「-1」を返し、その時点でループは終了します。
キーワードが見つかるたびに、その位置のインデックスがpositions
リストに追加されます。
また、current
の値を更新することで、次回の検索開始位置をキーワードの直後に設定し、重複して同じ位置を検索しないようにしています。最終的にprint(positions)
により、キーワードが見つかった全ての位置が出力されます。
正規表現とfindall()を使って文字列から複数のパターンを見つける方法
【サンプルコード】
import re
text = "Email addresses: john.doe@example.com, jane.doe@example.net"
pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
matches = re.findall(pattern, text)
print(matches)
【実行結果】
['john.doe@example.com', 'jane.doe@example.net']
上記のPythonのサンプルコードは、正規表現を使用して文字列から特定のパターンに一致する全てを見つける方法を示しています。
まず、import re
を用いてPythonの正規表現モジュールをインポートします。
次にtext
変数に検索対象の文字列を定義し、pattern
変数に検索したい正規表現パターンを設定します。ここでのtext
は「Email addresses: john.doe@example.com, jane.doe@example.net」という文字列です。
また、pattern
はメールアドレスを検索するための正規表現パターンで、このパターンに一致する文字列をtext
内で探します。
re.findall(pattern, text)
は、text
内でpattern
に一致する全ての部分を見つけ、リストとして返します。このリストには指定したパターンに一致する全ての文字列が含まれており、最後にprint(matches)
を使用して、見つかった全ての一致する部分を出力します。
※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。
ITやプログラミングに関するコラム
- CSSのFlexboxで簡単横並び!基本から応用までサンプルコードも使い紹介
- JavaScriptで位置情報を取得する方法と注意点
- JavaScriptで作る効果的なポップアップとモーダルウィンドウ
- JavaScriptによる要素変更:DOMとスタイル制御
- Font Awesome活用法を紹介!HTMLでアイコンを簡単に追加する方法を解説