\

Pythonでは、文字列内の特定の文字や部分文字列のn番目の出現を見つけるためのいくつかの方法があります。以下にその一部を紹介します。

1. find()メソッドを使用する

find()メソッドは、文字列内の部分文字列の最初の出現のインデックスを返します。これを利用して、n番目の出現を見つけることができます。

def find_nth(haystack: str, needle: str, n: int) -> int:
    start = haystack.find(needle)
    while start >= 0 and n > 1:
        start = haystack.find(needle, start+len(needle))
        n -= 1
    return start

この関数は、haystackという文字列内のneedleという部分文字列のn番目の出現のインデックスを返します。n番目の出現が見つからない場合は、-1を返します。

2. 正規表現を使用する

Pythonのreモジュールを使用して、正規表現を使って部分文字列の出現を見つけることもできます。

import re

def find_nth_with_re(haystack: str, needle: str, n: int) -> int:
    matches = [m.start() for m in re.finditer(needle, haystack)]
    return matches[n - 1] if len(matches) >= n else -1

この関数は、haystack内のneedleのn番目の出現のインデックスを返します。n番目の出現が見つからない場合は、-1を返します。

これらの方法を使えば、Pythonで文字列内の特定の文字のn番目の出現を効率的に見つけることができます。適切な方法を選択することで、コードのパフォーマンスと可読性を向上させることができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です