[解決済み] Pythonで文字列の中に複数回出現する文字列を見つける
2023-03-15 17:36:03
質問
Pythonで文字列内に複数回出現する文字列を見つけるにはどうしたらよいですか?これを考えてみましょう。
>>> text = "Allowed Hello Hollow"
>>> text.find("ll")
1
>>>
ということは、最初に出てくる
ll
は予想通り 1 にあります。次に出現するものを見つけるにはどうしたらよいでしょうか。
同じ質問がリストにも当てはまります。考えてみてください。
>>> x = ['ll', 'ok', 'll']
どのようにすればすべての
ll
とそのインデックスを見つけるには?
どのように解決するのですか?
正規表現を使うと
re.finditer
を使って、すべての(重複しない)出現箇所を見つけることができます。
>>> import re
>>> text = 'Allowed Hello Hollow'
>>> for m in re.finditer('ll', text):
print('ll found', m.start(), m.end())
ll found 1 3
ll found 10 12
ll found 16 18
また、正規表現のオーバーヘッドが嫌な場合は、繰り返し
str.find
を取得することができます。
次
のインデックスを取得します。
>>> text = 'Allowed Hello Hollow'
>>> index = 0
>>> while index < len(text):
index = text.find('ll', index)
if index == -1:
break
print('ll found at', index)
index += 2 # +2 because len('ll') == 2
ll found at 1
ll found at 10
ll found at 16
これはリストや他の配列に対しても有効です。
関連
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] バイトを文字列に変換する
-
[解決済み] Pythonで文字列の部分文字列を取得するにはどうすればよいですか?
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] Flask でグローバル変数はスレッドセーフか?リクエスト間でデータを共有するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ある部分文字列のすべての出現箇所を見つけるにはどうすればよいですか?
-
[解決済み] pandasのDataFrameから空のセルを含む行を削除する
-
[解決済み] PythonでSVGからPNGに変換する
-
[解決済み] googletransがエラー 'NoneType' オブジェクトに 'group' 属性がない、と言って動かなくなった。
-
[解決済み] タプルのリストを複数のリストに変換するには?
-
[解決済み] SQLAlchemy: 日付フィールドをフィルタリングする方法は?
-
[解決済み] 文字列のリストを内容に基づいてフィルタリングする
-
[解決済み] Ctrl-CでPythonスクリプトを終了できない
-
[解決済み] Flaskで非同期タスクを作る
-
[解決済み] Pythonの文字列の前にあるbという接頭辞は何を意味するのですか?